廖雪峰的git教学的总结
Git常用指令
-
git init
初始化当前文件夹成一个仓库。
-
git add readme.txt
把当前的readme.txt这个文件加入到仓库的暂存区中
-
git commit -m “说明”
把暂存区中的文件提交到工作区中
-
git status
让我们时刻掌握仓库当前的状态,例如哪些文件是新加的,哪些文件是只是被改动的。
-
git diff
如果在git status中看到了有些文件被修改了,那么git diff可以查看修改了哪些内容,比较和工作区的差异(如果暂存区里有东西,那就是暂存区和工作区的差距,不过一般暂存区和当前工作区是同步的,所以理解成当前工作区和工作区的差异就行了)
-
git log
查看提交历史,如果reset回退了,那么当前版本之后的哪些版本都无法从log中看到。
-
git reset --hard XXX
版本回退,XXX需要填的内容是:
- HEAD^ (上一个版本) , HEAD^^(上上个版本)
- 某个版本的提交用户的ID前缀 (如:8e2ba7)
-
git reflog
当回退之后发现找不到提交用户的版本了,这时用reflog可以看到所有的命令,从里面慢慢找吧。
-
git checkout – readme.txt
这句的指令比较奇怪,但确实有用,这句语句的意思是把文件还原到上一次add或commit的那个文件时的样子,也就是下面这个场景可以用到: 我完成了功能A接下来要搞功能B,我先add一下,
git add file
, cool , 接下来功能B,写着写着写乱了,wc,这是什么鬼东西,我在干什么? 算了 回退到开始,重新写功能B把, 这hi后就可以用git checkout -- file
回退回去了。
总之,这个指令的功能就是把你当前工作区还原成上一次add或commit的那个样子(若add是空的话,那么就是commit的样子) -
git rm readme.txt
删除readme.txt文件,并将删除操作存至暂存区中,当使用git commit的时候,会把文件同步更新到工作区。 如果删完以后,发现删错了,那就git checkout – readme.txt 把删除的readme.txt还原回来。
-
小插曲: 还原也好,比较也好,都是当前工作区和工作区之间的互动,因为暂存区和当前工作区的内容一般都是一致的,所以不用太纠结。
远程链接
-
设置SSH信息: ssh-keygen -t rsa -C "youremail@example.com"
之后cd ~
,到主目录下会看到新多出来一个.ssh文件夹,里面有id_rsa
和id_rsa.pub
这两个文件,这两个就是SSH Key的秘钥对,id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥,可以放心地告诉任何人,然后我们现在就要把id_rsa.pub
告诉github。 也就是上号,setting,找到ssh keys那一栏,创建一个新的ssh,再把id_rsa.pub
的内容加进去,就设置完成了。
-
仓库克隆 :git clone git@github.com:solthx/leetcode.git
solthx为github的用户名,leetcode为仓库名
-
小插曲: 克隆结束后,就可以对仓库balabala进行一堆操作了… 然后下面讲怎么同步到github
-
仓库同步: