You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git替换本地分支并将自有分支变基到新分支的操作步骤

操作步骤

提前假设你要对齐的对方维护的干净分支为origin/目标分支(可替换为实际分支名,如origin/master),你的本地工作分支名为my-feature。

  • 第一步:同步远程所有分支的最新状态
git fetch origin
  • 第二步:备份当前本地分支,避免操作失误丢失提交
git branch my-feature-backup
  • 第三步:切换到你的工作分支
git checkout my-feature
  • 第四步:查找你自己在对方强制推送前的最后一个提交哈希值,可通过git log --oneline翻找记录,假设该哈希值为abc1234
  • 第五步:将你自己的提交段变基到对方的干净分支上,剔除对方的提交
git rebase --onto origin/目标分支 abc1234 my-feature

命令参数说明:第一个参数为变基的目标基准(对方的干净分支),第二个参数为你自己提交段的起始点的前一个提交,第三个参数为待操作的工作分支

  • 第六步:处理变基冲突(无冲突可跳过)
    冲突出现后修改对应冲突文件,完成后执行:
git add 冲突文件名
git rebase --continue

若要跳过某冲突提交可执行git rebase --skip,若要终止本次变基恢复到操作前状态可执行git rebase --abort

  • 第七步:验证提交历史,确认已无对方的提交
git log --oneline
  • 第八步:将调整后的分支强制推送到远程
git push --force origin my-feature
原有命令不生效的原因

你之前使用的git reset --hard @{u}会直接把本地分支完全重置为和远程跟踪分支一致的状态,会把你在对方强制推送之后新增的提交也一并清除,后续的rebase操作自然无法保留你自己的提交,无法达到需求。

内容的提问来源于stack exchange,提问作者Eddie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 09:36:04