`
Ydoing
  • 浏览: 100624 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

git版本回退

 
阅读更多

查看日志

$ 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
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics