在Visual Studio 2017中使用Git,本地分支开发后推送前的操作咨询
嘿,我来一步步帮你理清这个多人协作下的Git操作流程,毕竟远程分支有更新时,很容易搞混步骤~
第一步:先同步本地master到远程最新状态
这一步是必须的!因为其他开发者已经往远程master提交了新代码,你得先让本地master跟上节奏,避免后续合并时出现不必要的冲突。
- 在Visual Studio 2017里操作:
- 打开团队资源管理器,切换到「分支」面板,选中
master分支点击「切换」; - 转到「同步」面板,点击「拉取」按钮,等待VS把远程master的最新代码同步到本地master。
- 打开团队资源管理器,切换到「分支」面板,选中
- 如果你习惯用命令行,对应的指令是:
git checkout master git pull origin master
第二步:将本地开发分支的改动合并到本地master
这里有两种常用方案,选哪种取决于你的团队习惯和提交历史的偏好:
方案1:合并(Merge)—— 保留完整提交轨迹
这种方式会保留你开发分支的所有提交记录,同时生成一个合并提交,适合需要完整追溯历史的场景。
- VS2017操作:
可以选两种路径:- 切换回你的本地开发分支,右键点击
master分支,选择「合并到当前分支」; - 或者切换到
master分支,右键点击你的开发分支,选择「合并到当前分支」。
如果出现冲突,VS会弹出冲突解决界面,你只需要逐个文件解决冲突,然后提交合并结果即可。
- 切换回你的本地开发分支,右键点击
- 命令行指令:
# 方式A:在开发分支上合并master git checkout your-dev-branch git merge master # 解决冲突后提交合并 git add . git commit -m "Merge remote latest master into dev branch" # 方式B:在master上合并开发分支 git checkout master git merge your-dev-branch
方案2:变基(Rebase)—— 让提交历史更整洁
变基会把你开发分支的所有提交,“移动”到最新的master提交之后,看起来就像你是在最新代码基础上从头开发的,提交线会更干净。注意:如果你的开发分支已经推送到远程过,不建议用变基,会改写公共提交历史;如果是本地私有分支,完全可以用。
- VS2017操作:
切换到你的开发分支,在团队资源管理器的「分支」面板右键点击该分支,选择「变基」,然后选择master作为基准分支,确认后如果有冲突就解决冲突,完成变基。 - 命令行指令:
git checkout your-dev-branch git rebase master # 解决冲突后继续变基 git rebase --continue # 如果中途想放弃变基,执行git rebase --abort
第三步:推送到远程master
等你把本地master更新完成(不管是合并还是变基,确保没有冲突),就可以把本地master推送到远程了:
- VS2017操作:切换到
master分支,转到「同步」面板点击「推送」按钮即可。 - 命令行指令:
git checkout master git push origin master
关于“先推本地分支到远程再pull”的说法
这个流程一般是需要团队代码评审的场景才用:比如你先把本地开发分支推到远程创建对应的远程分支,然后发起Pull Request(或Merge Request),等团队审核通过后,再把远程开发分支合并到远程master,之后你再拉取最新的远程master到本地。如果是你有权限直接合并到master,或者团队不需要评审,那前面的步骤就完全够用了。
内容的提问来源于stack exchange,提问作者DaveB
相关产品推荐
相关产品推荐

