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

Git合并upstream/main到本地分支且不丢失自有变更的操作步骤咨询

完整操作步骤

步骤1:检查并配置上游仓库(upstream)

首先确认本地是否已绑定上游仓库(即你fork的原始仓库):

  • 执行命令查看远程配置:
    git remote -v
  • 如果输出中没有名为upstream的远程地址,执行以下命令添加,将<上游仓库地址>替换为原始仓库的HTTPS或SSH地址:
    git remote add upstream <上游仓库地址>

步骤2:拉取上游最新代码

执行以下命令拉取上游所有分支的最新版本,该操作仅拉取缓存,不会修改你本地的任何代码,完全安全:
git fetch upstream

步骤3:切换到你的功能分支

确认你处于本地newFeature分支,若已在该分支可跳过:
git checkout newFeature

步骤4:将你的提交应用到上游最新代码之上

执行变基操作,该操作会先临时存储你在newFeature分支上的所有提交,将分支基底更新为upstream/main的最新版本,再依次把你的提交逐个应用到最新代码上,绝对不会丢失你的任何提交:
git rebase upstream/main

步骤5:处理合并冲突(若存在)

如果出现合并冲突,git会暂停变基流程:

  • 打开所有标记了冲突的文件,修改<<<<<<< HEAD到>>>>>>> <你的提交哈希>之间的冲突内容,保留你需要的代码
  • 冲突修改完成后,执行git add <冲突文件名>标记冲突已解决
  • 执行git rebase --continue继续后续的提交应用流程
  • 若中途想放弃本次操作,直接执行git rebase --abort即可回到变基前的状态,你的所有代码不会有任何改动

步骤6:推送分支到你fork的远程仓库

变基完成后,本地分支的提交历史已经更新,需要用强制推送的方式同步到你自己fork的远程仓库(仅影响你自己的fork仓库,不会改动上游仓库):
git push origin newFeature --force

完成以上操作后,你就可以直接在代码托管平台创建指向上游仓库的Pull Request了。

注意:全程所有你的本地提交都会被保留,即使出现操作失误也可以通过git reflog找回历史版本,不存在代码丢失的风险


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:24:02