Merge(合并)
操作方式:将一个分支的更改合并到另一个分支,创建一个新的合并提交。
历史记录:保留整个分支的完整历史记录,适用于公共分支。
优点:保留分支的独立性,可读性好,安全。
缺点:历史记录可能变得复杂,有可能会有冗余的合并提交。
相关命令:
git checkout target_branch
git merge source_branch
图例:
Rebase(变基)
操作方式:将一个分支的更改移动到另一个分支的末端。
历史记录:不同于merge,rebase会修改历史记录,使得历史记录看起来像一条直线,适用于私有分支或小团队。
优点:历史记录干净,线性,减少不必要的合并提交,适用于已经完工的分支与主干的合并
缺点:可能引起冲突,不推荐对已经分享的分支提交变基。
相关命令:
git checkout source_branch
git rebase target_branch
图例:
Squash(压缩)
操作方式:将多个连续的提交合并为一个,创建一个新的提交,是对merge的一种补充。
历史记录:生成一个简化的历史,只包含最终的合并提交,适用于创建一个清晰简单的提交历史。
优点:历史记录干净,提供干净的历史视图,减少rongyu
缺点:丢失了每个提交的详情信息,不适用于公共分支。
相关命令:
git checkout source_branch
git merge --squash target_branch
图例:
参考资料
[1] 【IT老齐424】再谈Git代码合并之Merge、Rebase、Squash
评论区