Git 版本恢复命令reset

来源:互联网 发布:node 压力测试工具 编辑:程序博客网 时间:2024/04/29 08:45
reset命令有3种方式:

    git reset --mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息

    git reset --soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可

    git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容


以下是一些reset的示例:

(1) 回退所有内容到上一个版本  
git reset HEAD^  
(2) 回退a.py这个文件的版本到上一个版本  
git reset HEAD^ a.py  
(3) 向前回退到第3个版本  
git reset –soft HEAD~3  
(4) 将本地的状态回退到和远程的一样  
git reset –hard origin/master  
(5) 回退到某个版本  
git reset 057d  
(7) 回退到上一次提交的状态,按照某一次的commit完全反向的进行一次commit  

git revert HEAD   



在本地开发了一个版本,然后加入某些代码, git commit 之后再 git push 与远程版本库同步,这时出现一个问题,在这次 git commit 之前的版本内容如何找回?

首先git log显示提交的历史

[plain] view plaincopyprint?
  1. commit ee50348120302b19318ab6a564d4092dd87a85ef  
  2. Author: ShichaoXu <gudujianjsk@gmail.com>  
  3. Date:   Mon Jun 3 15:18:16 2013 +0800  
  4.   
  5.     support for printf  
  6.   
  7. commit e7a5e492c742a7b68c07f124edd4b713122c0666  
  8. Author: ShichaoXu <gudujianjsk@gmail.com>  
  9. Date:   Tue May 7 15:44:11 2013 +0800  
  10.   
  11.     del file lib/2440slib.s init/2440init.s  
  12.   
  13. commit 5a05f002ef1dfbbf118b2ffd7b829159b727ce16  
  14. Author: ShichaoXu <gudujianjsk@gmail.com>  
  15. Date:   Tue May 7 15:26:30 2013 +0800  
  16.   
  17.     change file name lib/2440slib.s init/2440init.s to lib/2440slib.S init/2440init.S  
  18.   
  19. commit a948e62c9eabd54bfc4de3c4dfd14b4fc2bb48dd  
  20. Author: ShichaoXu <gudujianjsk@gmail.com>  
  21. Date:   Tue May 7 15:06:17 2013 +0800  
  22.   
  23.     add code for this project  
  24.   
  25. commit 59a902efdef8fb3dd47264df8a666de7026d1595  
  26. Author: ShichaoXu <gudujianjsk@gmail.com>  
  27. Date:   Mon May 6 23:15:01 2013 -0700  
  28.   
  29.     Initial commit  
然后用 

[plain] view plaincopyprint?
  1. ~/gun-ucos$$git reset --hard e7a5e492c742a7b68c07f124edd4b713122c0666  

显示如下

[plain] view plaincopyprint?
  1. HEAD is now at e7a5e49 del file lib/2440slib.s init/2440init.s  


此时正常回到git commit    "support for printf" 之前的状态!




参考链接:

http://blog.163.com/jianlizhao@126/blog/static/173251163201183045856216/


http://liuhui998.com/2010/10/22/recover_lost_commits_with_git/

0 0