Git入门
来源:互联网 发布:微信群淘宝客话术 编辑:程序博客网 时间:2024/06/03 20:16
注:本文图文参考整理自(亲测没有问题)
菜鸟教程:
http://www.runoob.com/w3cnote/android-tutorial-git-repo-operate.html
廖雪峰的官方网站:
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013752340242354807e192f02a44359908df8a5643103a000
由于主要图文皆来自以上两个网站,故设为转载。
一、创建本地仓库
1.先从网络上下在一个Git For Window
地址: https://git-for-windows.github.io/ 点击 Download,跳转到 Github ,下载对应安装包即可!
2.安装完毕后,鼠标右键可看到Git Bash,如图
3.点击打开后,进行身份配置(方便后期在提交代码时,知道是谁提交了代码)
输入:(修改为你自己的name及email)
git config --global user.name "coder-pig"git config --global user.email "779878443@qq.com"
输入完毕后,可输入:
git config --global user.name
然后回车,正常情况下,会返回你刚才输入的name(即上方的coder-pig)
然后可以先关闭Git Bash,在你想要创建Git仓库的地方,创建一个文件夹,并在文件夹内右键,点击Git Bash,输入:
git init
此时文件夹内应该会多了一个.git的文件,此时仓库已建立(如果没看到,可能是被系统隐藏了)。
注:接下来要存进仓库的文件需与.git文件在同一个目录下(在项目移进来,或者在项目内执行 git init)。
用于测试,我们在.git同一个目录下,创建一个readme.txt文件
在Git Bash中输入:
git add readme.txtgit commit -m "Wrote a readme file"
便可将readme.txt文件提交到本地仓库。
注:-m 后面的文字为本次提交的声明(类似代码里注释),可修改为其他文字。
又注:可以add多个文件后,再进行commit提交。或者使用:
git add.
将目录下的全部文件一次添加,如果有部分长期固定不变的文件,我们可以在代码仓库的根目录下创建一个名为.gitignore的文件,然后编辑里面的内容,把不需提交的文件忽略掉!
接着输入要提交时忽略的文件内容即可!
4.查看修改的内容
当我们提交项目后,再进行修改,可以通过git status查看修改的部分,比如,我们删掉MainActivity.java里的菜单的代码以及多余的菜单相关的包!
git status
他就会提示我们哪些文件发生了改变,但是还没有提交,如果我们想看下具体更改了什么,我们可以用到git diff命令,另外,按Q可以退回命令行输入!
git diff
5、查看提交记录
当然随着我们项目的深入,Commit的次数也会越来越多,可能你早已忘记每次提交都修改了什么内容, 没事,Git帮你记着呢,使用git log即可查看历史提交信息!输入:
git log
我们取其中一小部分来分析:
commit defd8af52be5183dfceb3e5cf23f78ea47d013b0Author: coder-pig <779878443@qq.com>Date: Fri Jun 19 17:00:36 2015 +0800MainActivity Delete Menu
依次是:
·此次提交对应的版本号·提交人:姓名 邮箱·提交的时间·提交版本修改的内容:就是我们commit -m "xxx"里的xxx
6.撤销未提交的修改
比如我们刚提交了一个版本,然后又乱七八糟地写了一堆东西,突然发现不小心误删了一些东西,然后ctrl + s保存了,这个时候是不是欲哭无泪,不过有Git,只需一个checkout命令即可撤销更改,当然是你还没add的情况,比如我们在MainActivity里随便添加一条语句,保存。
然后输入:git diff
如果只有少量的代码当然可以手动修改,但如果改动的地方多了,这时候可以输入:
git checkout src/com/jay/example/testforgit/MainActivity.java
然后会神奇的发现,我们新写的代码没了!duang一下就没了,不信你可以自己试试
当然,如果我们已经add了的话,那么checkout是没任何作用的,我们要先取消添加才可以撤回提交,使用下述指令:
git reset HEAD src/com/jay/example/testforgit/MainActivity.javagit checkout src/com/jay/example/testforgit/MainActivity.java
6.版本回退
第五点我们教了大家撤销未提交的修改,但加入提交了,我们想回退到之前的某一个版本怎么办? 第四点中我们可以通过git log查看我们的提交记录,我们需要从这里获取一个版本号, 一般我们只需要前七位字符就够了;另外在Git中,用HEAD代表当前版本,上一个版本就是HEAD^, 再上一个版本就是HEAD^^依次类推!我们先Git Log看下版本历史先!
我们回到前一个提交的版本吧,依次键入下述指令:
git reset --hard HEAD git reset --hard HEAD^ git log
可以看到我们已经回退到了前一个版本了,当然你可以直接这样写:(ad2080c为版本号)
git reset --hard ad2080c
就是这么简单!回退后,你突然后悔了,想回退回新的那个版本, 可是遗憾的是,你键入git log却发现没有了最新的那个版本号,这怎么办呢… 没事,Git中给你提供了这颗”后悔药”,Git记录着你输入的每一条指令呢!键入:
git reflog
你会发现,版本号就在这里:
git reset --hard ad2080c
可以看到我们又回到了最新的那个版本了,就是这么溜!
二.本地仓库与GitHub(下载及提交)
1.首先要注册github账号,并创建一个空的仓库,具体这里不再多提。
2.本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置:
第1步:创建SSH Key。在用户主目录下(即:C:\Users\Administrator),看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Git Bash,创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可。
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
第2步:登陆GitHub,点击头像→setting→SSH and GPG keys,点击New SSH keys,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
点“Add Key”,你就应该看到已经添加的Key:
3.点击新仓库
目前,在GitHub上的这个learngit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
现在,我们根据GitHub的提示,在本地的learngit仓库下运行命令:
git remote add origin git@github.com:michaelliao/learngit.git
请千万注意,把上面的michaelliao替换成你自己的GitHub账户名,否则,你在本地关联的就是我的远程库,关联没有问题,但是你以后推送是推不上去的,因为你的SSH Key公钥不在我的账户列表中。
添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。
下一步,就可以把本地库的所有内容推送到远程库上:
$ git push -u origin masterCounting objects: 19, done.Delta compression using up to 4 threads.Compressing objects: 100% (19/19), done.Writing objects: 100% (19/19), 13.73 KiB, done.Total 23 (delta 6), reused 0 (delta 0)To git@github.com:michaelliao/learngit.git * [new branch] master -> masterBranch master set up to track remote branch master from origin.
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样:
从现在起,只要本地作了提交,就可以通过命令:
$ git push origin master
把本地master分支的最新修改推送至GitHub,现在,你就拥有了真正的分布式版本库!
SSH警告
当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告:
The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.RSA key fingerprint is xx.xx.xx.xx.xx.Are you sure you want to continue connecting (yes/no)?
这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。
Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了:
Warning: Permanently added 'github.com' (RSA) to the list of known hosts.
这个警告只会出现一次,后面的操作就不会有任何警告了。
- GIT 入门
- Git入门
- git入门
- Git 入门
- git 入门
- git 入门
- git入门
- git入门
- Git 入门
- Git 入门
- Git入门
- git入门
- git入门
- git 入门
- git 入门
- Git入门
- Git入门
- git入门
- FZOJ1566 复制书稿
- [大数据-linux基础]查看linux系统位数
- 程序人生丰厚的收入
- SpringMVC+Spring+HIbernate 简单增删改查实例
- C++中.*和->*对类成员函数的调用
- Git入门
- Java中的this方法
- 业务流程和业务逻辑的区别
- qemu进行ARM CPU仿真及程序gdb调试
- Linux signals(三) 使用sigval进行进程间通信 实例代码
- Process Monitor监控目录
- 本地开发的项目添加到svn服务器
- 在IntelliJ IDEA中同步代码到华为云git仓库 (on windows) 续 -- 配置好正确的SSH key
- CNN中感受野的计算