竹磬网-邵珠庆の日记 生命只有一次,你可以用它来做些更多伟大的事情–Make the world a little better and easier


226月/130

Git版本恢复命令reset

发布在 邵珠庆

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显示提交的历史

  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  

然后用 

  1. ~/gun-ucos$$git reset --hard e7a5e492c742a7b68c07f124edd4b713122c0666  

显示如下

[plain] view plaincopy

 
  1. HEAD is now at e7a5e49 del file lib/2440slib.s init/2440init.s  

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