项目初始情况

Merge
fast-forward

快速合并,直接把指针指向前去,无冲突要解决。
非 fast-forward

保留历史记录,解决冲突
设置 non fast-forward

即使能快速合并,也搞出一个合并的点,保留历史记录
rebase
假设当前状况为这样


此时rebase,则把rebase的历史记录插到master的头上

结果就是好像learn-rebase这个分支不存在一样
对比 merge 和 rebase 最终的历史记录,可以发现 merge 保持了修改内容的历史记录,但是历史记录会很复杂;而 rebase 后的历史记录简单,是在原有提交的基础上将差异内容反映进去。

建议:
- 和同事分别开发2个分支功能时,同事时不时会提交到master分支,尽量及时rebase上游分支,这样你最终合并时可以把同事的代码带上,而不是最终解决大量冲突。
关于我:
linxinzhe,全栈工程师,目前供职于某500强通信企业。人工智能,区块链爱好者。
GitHub:https://github.com/linxinzhe
欢迎留言讨论,也欢迎关注我~
我也会关注你的哦!
网友评论