1.背景
近日在拜读廖雪峰大牛的git教程,确实犹如大家公认的是目前网上最为简洁易懂而且全面的教程。由于校园网问题导致不能访问github,因此就先整理一下从廖大牛那学来的一些本地容器常用的指令。
2.操作
1)安装git
sudo apt-get install git
2)创建本地仓库repository,为git表明“哥我要进行版本控制的文件在这个文件中哦“这意思。(这里假设在GIT文件夹下创建仓库。)
cd GIT
git init
执行后,GIT目录下会生成一个隐藏的.git文件夹。
3)往仓库中添加文件,引用廖大牛的原话是
“首先明确一下,所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。“
二进制文件(如图片视频等)是不行的,所以我们一般是用来对源代码进行版本控制的。
先touch一个新文件test.txt,内容任意。再执行
git add test.txt
告诉仓库我添加一个要版本控制的文件test.txt了。可以git add多个文件,都会先提交给git的暂存区,等最后一并提交。
可以随时执行
git status
查看当前仓库的信息。
4)推送当前版本(最近add的版本)给仓库。
git commit -m "do something"
-m 是附加消息即这个版本是什么或者修改者动了什么。需要注意的是,它只会commit那些add后的文件,假如你在add了一次test.txt,随后又执行了修改,那么它只会commit add时的text状态,想要提交修改后的,再add一下即可。
5)如果你在本地对test.txt进行了自己的修改,内容一多就忘了修改了什么,可以执行diff来查看。
git diff test.txt
此命令会将本地当前的test.txt与仓库中最新版本的test.txt进行对比,并将结果输出。
6)版本回退。
先用git log
来查看需要回退的版本,也就是之前commit的id号,亦即那条SHA1信息。
git reset --hard commit_id
commit_id一般写SHA1值的前几个即可,git会自动查找出来。
7)从之前回到现在。
如果在版本回退后发现也不是想要的,就要从过去回到现在。此时执行git log
是没有对应的版本信息的。因此就要换一个命令了,执行git reflog
便可以看到之前的commit_id了,之后再git reset即可。
8)取消修改
如果在对一份文件不小心进行了一些奇怪的操作,同时自己也忘了具体是什么,也不要慌,可以撤销相应的修改。
git checkout -- test.txt
git checkout有两层作用,同样这里引用廖大牛的总结原话比较清楚一点:
一种是test.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是test.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
9)删除文件
如果你执行了rm test.txt
即把test.txt给删除了,同时又不想在仓库中保留,那么执行
git rm test.txt
git commit -m "remove the test.txt"
这就从仓库中把它给删了。而另外一种情况是你不小心误删的,那么也别急,checkout一下即可恢复~
git checkout -- test.txt
你会发现test.txt又回来了:)
3.reference
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000