You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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 addgit 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_

火山引擎 最新活动