已设置不同上游的开发分支如何从master分支拉取更新?
原因说明
git status 默认只会对比当前分支和它绑定的上游分支(你当前newBranch的上游是origin/newBranch),你执行git fetch origin master只是把远程master的最新提交下载到本地缓存,不会触发和当前分支的差异对比,因此不会在status结果里展示。
操作步骤
你可以选择以下两种方式把master的更新合并到newBranch:
方案1:合并操作(保留完整提交历史,适合多人协作的分支场景)
- 先切换到本地
master分支,同步远程最新更新:
git switch master git pull origin master
- 切回你的开发分支
newBranch:
git switch newBranch
- 执行合并操作,把本地
master的更新合入当前分支:
git merge master
如果合并过程中出现冲突,修改完冲突文件后执行git add <冲突文件路径>,再执行git commit即可完成合并,合并完成后执行git push就能把合并后的代码推送到远程newBranch。
方案2:变基操作(生成线性提交历史,仅适合你个人独用的分支场景)
- 先同步本地
master的远程更新,步骤和方案1前两步一致 - 切回
newBranch后执行变基命令:
git rebase master
如果变基过程中出现冲突,修改完冲突文件后执行git add <冲突文件路径>,再执行git rebase --continue即可继续变基流程。变基完成后推送需要加强制参数:git push --force。
内容的提问来源于stack exchange,提问作者nordictelecom
相关产品推荐
相关产品推荐

