Git终端下Rebase、冲突解决及代码推送操作指南(Azure DevOps)
终端Git Rebase、冲突解决与推送全流程指南
别担心,我一步步带你操作,每一步都讲清楚来龙去脉,绝对不会搞坏你的本地仓库~
1. 先同步远程stagingonly的最新代码到本地
首先得保证你本地的stagingonly分支是远程的最新版本,这样rebase的基础才对:
# 切换到本地stagingonly分支(这一步完全不会碰你的X分支代码) git checkout stagingonly # 拉取远程仓库stagingonly分支的所有新代码 git pull origin stagingonly
放心,这一步只是更新本地的stagingonly,你的X分支代码完全不受影响。
2. 回到你的开发分支X,执行Rebase
现在本地stagingonly已经是最新的了,切回你的分支X,把你的提交“挪”到最新的stagingonly代码后面:
git checkout X git rebase stagingonly
这时候有两种情况:
- 如果没有代码冲突,Git会自动完成rebase,直接跳到第4步就行
- 如果有冲突,Git会暂停rebase,控制台会提示你哪些文件有冲突,这时候就需要解决冲突了
3. 解决冲突并完成Rebase
遇到冲突时,你可以用熟悉的VS Code打开冲突文件(VS Code的冲突可视化工具很好用):
- 文件里会用
<<<<<<< HEAD(远程stagingonly的最新代码)、=======(你的X分支代码)、>>>>>>> [你的提交哈希]标记冲突区域 - 手动修改这些区域,保留正确的代码,然后删掉这些标记符号,保存文件
接下来告诉Git你已经解决了冲突,继续完成rebase:
# 把解决完冲突的文件标记为已处理 git add 冲突的文件名 # 继续执行rebase git rebase --continue
如果还有其他冲突,重复上面的步骤:解决冲突→git add→git rebase --continue,直到Git提示rebase完成。
💡 紧急止损小贴士:如果中途觉得搞不定,随时执行
git rebase --abort,就能回到rebase之前的状态,代码完全不会丢!
4. 安全推送到远程仓库
因为rebase改写了提交历史,不能用普通的git push,得用安全的强制推送(只覆盖你自己的分支X,不会影响其他人的代码):
git push origin X --force-with-lease
--force-with-lease是团队协作的最佳实践,它会先检查远程的X分支有没有其他人的新提交,只有确认没有的时候才会推送,避免误删别人的代码。
收尾:发起代码评审
推送成功后,你就可以去Azure DevOps里找到你的分支X,发起代码评审啦~
内容的提问来源于stack exchange,提问作者Sam_




