分支开发时主线有更新,后续开发前应执行何种Git操作?
处理主线变更的最优方案
优先选择在你的个人分支上执行**变基(Rebase)**操作,具体步骤如下:
- 切换到你的个人分支:
git checkout your-personal-branch - 拉取主线最新变更并变基:
git pull origin mainline --rebase - 若遇到冲突,逐个解决文件冲突后,执行:
重复此步骤直到变基完成;如果中途想放弃变基,执行git add <已解决冲突的文件> git rebase --continuegit rebase --abort即可回到操作前的状态。 - 变基完成后,由于提交历史被改写,需要安全地强制推送到远程个人分支:
用git push origin your-personal-branch --force-with-lease--force-with-lease替代--force,能避免意外覆盖他人在你分支上的修改,更安全。
为什么不推荐用Cherry Pick?
Cherry Pick的核心作用是复制单个或少量特定提交到其他分支,并不适合让你的分支同步主线所有最新变更的场景。用它来同步主线会生成大量重复提交,不仅让分支历史变得混乱,还会给后续合并主线埋下冲突隐患,不利于代码追溯和维护。
备选方案:合并主线分支
如果你不想改写提交历史,也可以直接合并主线到个人分支:
git merge origin mainline
但这种方式会生成一条合并提交记录,分支历史会比变基更“臃肿”,适合不介意提交历史复杂度的场景。
内容的提问来源于stack exchange,提问作者Devep
相关产品推荐
相关产品推荐

