目的

重置 greet 分支到第一次合并前的地方。

重置 greet 分支

让我们回到 greet 分支在合并 master 之前的时间点。我们可以 重置分支到我们想要的任何提交处。重点是修改分支指针以指向 提交树中的任何位置。

在本实验中,我们想要回到 greet 在与 master 合并之前的地方。 我们需要找到合并前的最后一个提交。

  1. $ git checkout greet
  2. $ git hist
  1. $ git checkout greet
  2. Already on 'greet'
  3. $ git hist
  4. * 25f0e8c 2013-04-13 | Merged master fixed conflict. (HEAD, greet) [Jim Weirich]
  5. |\
  6. | * 05f32c0 2013-04-13 | Made interactive (master) [Jim Weirich]
  7. * | 844d1ed 2013-04-13 | Merge branch 'master' into greet [Jim Weirich]
  8. |\ \
  9. | |/
  10. | * b59a8c2 2013-04-13 | Added README [Jim Weirich]
  11. * | 28917a4 2013-04-13 | Updated Rakefile [Jim Weirich]
  12. * | 4dac415 2013-04-13 | Hello uses Greeter [Jim Weirich]
  13. * | 39347b3 2013-04-13 | Added greeter class [Jim Weirich]
  14. |/
  15. * 96ee164 2013-04-13 | Added a Rakefile. [Jim Weirich]
  16. * 0f36766 2013-04-13 | Moved hello.rb to lib [Jim Weirich]
  17. * eb30103 2013-04-13 | Add an author/email comment [Jim Weirich]
  18. * 1f7ec5e 2013-04-13 | Added a comment (v1) [Jim Weirich]
  19. * 582495a 2013-04-13 | Added a default value (v1-beta) [Jim Weirich]
  20. * 323e28d 2013-04-13 | Using ARGV [Jim Weirich]
  21. * 9416416 2013-04-13 | First Commit [Jim Weirich]

有点难以阅读。通过查看数据我们发现“Updated Rakefile”是 greet 分支在合并前的最后一个提交。让我们重置 greet 分支到 该提交处。

  1. $ git reset --hard <hash>
  1. $ git reset --hard 28917a4
  2. HEAD is now at 28917a4 Updated Rakefile

检查分支

看看 greet 分支的日志。在它的历史中,我们不再有合并提交。

  1. $ git hist --all
  1. $ git hist --all
  2. * 05f32c0 2013-04-13 | Made interactive (master) [Jim Weirich]
  3. * b59a8c2 2013-04-13 | Added README [Jim Weirich]
  4. | * 28917a4 2013-04-13 | Updated Rakefile (HEAD, greet) [Jim Weirich]
  5. | * 4dac415 2013-04-13 | Hello uses Greeter [Jim Weirich]
  6. | * 39347b3 2013-04-13 | Added greeter class [Jim Weirich]
  7. |/
  8. * 96ee164 2013-04-13 | Added a Rakefile. [Jim Weirich]
  9. * 0f36766 2013-04-13 | Moved hello.rb to lib [Jim Weirich]
  10. * eb30103 2013-04-13 | Add an author/email comment [Jim Weirich]
  11. * 1f7ec5e 2013-04-13 | Added a comment (v1) [Jim Weirich]
  12. * 582495a 2013-04-13 | Added a default value (v1-beta) [Jim Weirich]
  13. * 323e28d 2013-04-13 | Using ARGV [Jim Weirich]
  14. * 9416416 2013-04-13 | First Commit [Jim Weirich]