目的
重置 greet 分支到第一次合并前的地方。
重置 greet 分支
让我们回到 greet 分支在合并 master 之前的时间点。我们可以重置分支到我们想要的任何提交处。重点是修改分支指针以指向提交树中的任何位置。
在本实验中,我们想要回到 greet 在与 master 合并之前的地方。我们需要找到合并前的最后一个提交。
$ git checkout greet
$ git hist
$ git checkout greet
Already on 'greet'
$ git hist
* 25f0e8c 2013-04-13 | Merged master fixed conflict. (HEAD, greet) [Jim Weirich]
|\
| * 05f32c0 2013-04-13 | Made interactive (master) [Jim Weirich]
* | 844d1ed 2013-04-13 | Merge branch 'master' into greet [Jim Weirich]
|\ \
| |/
| * b59a8c2 2013-04-13 | Added README [Jim Weirich]
* | 28917a4 2013-04-13 | Updated Rakefile [Jim Weirich]
* | 4dac415 2013-04-13 | Hello uses Greeter [Jim Weirich]
* | 39347b3 2013-04-13 | Added greeter class [Jim Weirich]
|/
* 96ee164 2013-04-13 | Added a Rakefile. [Jim Weirich]
* 0f36766 2013-04-13 | Moved hello.rb to lib [Jim Weirich]
* eb30103 2013-04-13 | Add an author/email comment [Jim Weirich]
* 1f7ec5e 2013-04-13 | Added a comment (v1) [Jim Weirich]
* 582495a 2013-04-13 | Added a default value (v1-beta) [Jim Weirich]
* 323e28d 2013-04-13 | Using ARGV [Jim Weirich]
* 9416416 2013-04-13 | First Commit [Jim Weirich]
有点难以阅读。通过查看数据我们发现“Updated Rakefile”是 greet 分支在合并前的最后一个提交。让我们重置 greet 分支到该提交处。
$ git reset --hard <hash>
$ git reset --hard 28917a4
HEAD is now at 28917a4 Updated Rakefile
检查分支
看看 greet 分支的日志。在它的历史中,我们不再有合并提交。
$ git hist --all