Git本地feature分支git pull来源及远程分支同步方法
疑问1:本地features/abc分支下直接执行git pull的拉取目标
你之前执行git push --set-upstream origin features/abc时,已经给本地features/abc分支绑定了上游跟踪分支,也就是远程仓库origin下的features/abc分支。
只要你没手动改过分支的上游跟踪配置,在本地features/abc分支下直接跑git pull,默认拉的是远程origin/features/abc分支的内容,不会自动拉远程releases/car-v2的更新——Git不会因为你当初是从releases/car-v2切出来的特性分支,就自动给两个分支建立拉取关联。
疑问2:同步远程releases/car-v2最新变更到本地features/abc的操作
操作前先确认当前处于本地features/abc分支,如果工作区有未提交的临时改动,可以先执行git stash暂存,等同步操作完成后再执行git stash pop恢复改动,避免操作过程中代码混乱。
按以下步骤操作即可:
- 拉取远程仓库所有分支的最新提交记录到本地缓存,这一步不会修改你当前工作区的任何文件:
git fetch origin - 将本地缓存的远程最新releases/car-v2分支(即origin/releases/car-v2)的变更同步到当前特性分支,有两种常用方案,根据团队的提交规范选择即可:
- 方案1:merge合并(操作门槛低,会生成一条明确的合并提交记录,适合个人开发或对提交线性度要求不高的场景)
如果执行过程中提示代码冲突,打开标记了冲突的文件,手动保留需要的代码内容后,执行git merge origin/releases/car-v2git add <解决完冲突的文件名>标记冲突已解决,再执行git commit就完成合并了。 - 方案2:rebase变基(提交记录整洁呈线性,不会额外生成合并提交,适合对提交历史规范要求高的团队)
如果执行过程中出现冲突,解决完对应文件的冲突后执行git rebase origin/releases/car-v2git add <解决完冲突的文件名>,再执行git rebase --continue,重复这个步骤直到变基流程走完即可。
- 方案1:merge合并(操作门槛低,会生成一条明确的合并提交记录,适合个人开发或对提交线性度要求不高的场景)
- 可选操作:如果需要把同步完上游更新的本地特性分支推送到远程对应分支,直接执行
git push即可;如果选择了rebase方案,首次推送需要加-f参数强制推送,推送前务必确认远程features/abc分支没有其他协作者提交的、你本地还没同步的内容,避免覆盖他人代码。
内容的提问来源于stack exchange,提问作者J L
相关产品推荐
相关产品推荐

