Git:如何更新已创建的旧功能分支?
Git功能分支更新两种方法的优缺点对比
你提到的两种方法都是用来把远程master的更新同步到本地功能分支的方案,各自的优缺点如下:
方法1:先同步本地master再合并
git checkout master git pull git checkout feature/my-new-feature git merge master
优点
- 同步完成后,本地master分支和远程origin/master完全一致,之后切换回master工作时不会出现本地分支滞后的问题
- 合并操作在本地分支间进行,冲突处理流程直观,解决完冲突直接提交到功能分支即可,逻辑清晰
- 会保留明确的合并历史节点,能清晰看到功能分支什么时候同步了master的更新
缺点
- 操作步骤多,需要来回切换分支,相比方法2更繁琐,容易在切换过程中出错
- 会在功能分支的提交历史中新增一条合并提交记录,如果团队追求干净的线性提交历史,这条记录会显得多余
方法2:直接拉取远程master到当前功能分支
git pull origin/master
优点
- 操作极简,单条命令就能完成更新,省去分支切换的麻烦,效率高
- 不需要离开当前的功能分支,适合不想切换分支打断开发节奏的场景
缺点
- 只会更新当前功能分支,本地的master分支还是旧状态,之后如果需要在master上操作,还得单独执行
git checkout master && git pull同步,容易遗忘导致本地master滞后 - 本质是
git fetch origin master + git merge origin/master的组合,冲突处理和方法1一致,但同步逻辑不直观,新手容易搞不清本地分支的状态 - 同样会产生合并提交记录,影响提交历史的线性度
内容的提问来源于stack exchange,提问作者MartinTTS
相关产品推荐
相关产品推荐

