当你在 feature-login 分支完成了开发,如何把成果带回 master 主分支?这是分支的核心议题。
合并会创建一个专门的“合并提交”,把两个分支的最新快照和它们的共同祖先进行三方合并。
git checkout master
git merge feature-login
结果:会产生一条额外的合并提交。分支的历史轨迹被原封不动地保留,脉络清晰,适合多人协作的公共分支。
变基的核心思想是:把我的改动,在另一个分支的最新基础上重新“演”一遍。
git checkout feature-login
git rebase master
结果:提交历史变成一条完美的直线,没有分叉,非常干净。但要注意:永远不要对已经推送到公共仓库的提交进行变基,因为它通过复制提交来改写历史,会破坏别人的工作基础。
当你 merge 或 rebase 时,若两个人改了同一个文件的同一行,Git 就会停下来,请你裁决。
<<<<<<<, =======, >>>>>>> 标记出的两个版本。git add .git commit。git rebase --continue。