目的

学习如何合并两个分叉的分支以便将更改带回到单一分支。

合并分支

合并将两个分支中的更改结合在一起。让我们回到 greet 分支, 并将 master 合并过来。

  1. $ git checkout greet
  2. $ git merge master
  3. $ git hist --all
  1. $ git checkout greet
  2. Switched to branch 'greet'
  3. $ git merge master
  4. Merge made by recursive.
  5. README | 1 +
  6. 1 files changed, 1 insertions(+), 0 deletions(-)
  7. create mode 100644 README
  8. $ git hist --all
  9. * 844d1ed 2013-04-13 | Merge branch 'master' into greet (HEAD, greet) [Jim Weirich]
  10. |\
  11. | * b59a8c2 2013-04-13 | Added README (master) [Jim Weirich]
  12. * | 28917a4 2013-04-13 | Updated Rakefile [Jim Weirich]
  13. * | 4dac415 2013-04-13 | Hello uses Greeter [Jim Weirich]
  14. * | 39347b3 2013-04-13 | Added greeter class [Jim Weirich]
  15. |/
  16. * 96ee164 2013-04-13 | Added a Rakefile. [Jim Weirich]
  17. * 0f36766 2013-04-13 | Moved hello.rb to lib [Jim Weirich]
  18. * eb30103 2013-04-13 | Add an author/email comment [Jim Weirich]
  19. * 1f7ec5e 2013-04-13 | Added a comment (v1) [Jim Weirich]
  20. * 582495a 2013-04-13 | Added a default value (v1-beta) [Jim Weirich]
  21. * 323e28d 2013-04-13 | Using ARGV [Jim Weirich]
  22. * 9416416 2013-04-13 | First Commit [Jim Weirich]

通过周期性地合并 master 到 greet 分支,你可以选择 master 的 任意更改,并保持 greet 中的更改与主干中的更改兼容。

然而,这会产生丑陋的提交图。稍后我们将看看变基替代合 并这个选项。

下一步

如果 master 中的更改与 greet 中的冲突怎么办?