Git 技巧:恢复到前一次提交

有时候你希望将你现在的代码返回到前一次提交,并保留所有之前的变化。你希望在前一次提交与当前HEAD之间提交新的代码。

 

首先,以你希望退回的提交处新建一个分支为 'revert-branch' 。在这个例子中,我们希望退回到前一次提交(假设当前分支为'master'),并且在这个提交上再做修改。

 
 
  1. git branch revert-branch HEAD^ 

接下来切换到新的分支:

 
 
  1. git checkout revert-branch 

传授一个绝招:从master软恢复到新分支的HEAD。软恢复将改变HEAD的状态,但并不影响工作树。

 
 
  1. git reset --soft master 

现在,我们执行 git status, 我们将看到我们想要恢复的提交的变化。我要撤销添加'second.txt',但也可能是更复杂的变化:

 
 
  1. $ git status 
  2. # On branch revert-branch 
  3. # Changes to be committed: 
  4. #   (use  to unstage) 
  5. #       deleted:    second.txt 

现在让我们提交这个 'reversal':

 
 
  1. git commit -m "reverted to initial state." 

原文链接:http://www.oschina.net/translate/git-tips-revert-with-new-commit

译文链接:http://www.oschina.net/translate/git-tips-revert-with-new-commit

THE END