$ git log
commit 81fe2587c1018b93d7016f69f52f532e903b780f
Author: Jdoing <703627622@qq.com>
Date: Mon Apr 13 21:31:47 2015 +0800
add some comment to readme.txt file
commit 28647342369fc48cde70523f2fb38f4ec67f5957
Author: Jdoing <703627622@qq.com>
Date: Mon Apr 13 21:19:44 2015 +0800
modify readme.txt
commit 1b73fc64b6b8de59f68cd4466ce5091040870929
Author: Jdoing <703627622@qq.com>
Date: Mon Apr 13 21:10:14 2015 +0800
add readme.txt file
$ git reflog
81fe258 HEAD@{0}: commit: add some comment to readme.txt file
2864734 HEAD@{1}: commit: modify readme.txt
1b73fc6 HEAD@{2}: commit (initial): add readme.txt file
jiangyu@ubuntu:~/github/awesome-python-webapp$ git log
reset命令有3种方式:
- git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息.即覆盖暂存区,但不覆盖工作区.
- git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可.即不覆盖暂存区,也不覆盖工作区.
- git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容.即覆盖暂存区和工作区.
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164…882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100.
$ git reset --hard HEAD^
HEAD is now at 2864734 modify readme.txt
也可以指定版本号,不一定要指定完整版本号,只要git能匹配找到就行
$ git reset --hard 28647342369
HEAD is now at 2864734 modify readme.txt
命令git checkout – readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
$ git checkout -- readme.txt
先删除
$ git rm test.txt
rm ‘test.txt‘
后提交
$ git commit -m "rm test.txt"
[master ce02a0f] rm test.txt
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 test.txt
原文:http://blog.csdn.net/csujiangyu/article/details/45045323