542 字
1 分钟
将“上游项目”的更新合并到“我的项目”上
2026-03-08

一、添加上游项目的本地分支索引#

1、从名为 upstream的远程仓库拉取 master分支的最新信息到本地

git fetch upstream master

此操作只会更新本地仓库的远程分支索引(如 upstream/master),不会自动修改你本地任何分支上的文件

2、使用 --force选项,强制创建一个名为 master-upstream的新本地分支(如果已存在则重置),并让其指向 upstream/master所对应的提交

git branch --force master-upstream upstream/master

这个分支相当于当前上游 master分支状态的一个快照。

3、列出所有名称匹配 master-upstream的分支

git branch --list master-upstream

4、显示 master-upstream分支最近的10条提交记录

git log --oneline master-upstream -n 10

二、上游项目的更新#

1、将上游仓库为upstream的最新提交记录拉到本地

git fetch upstream

更新所有远程跟踪分支(包括 upstream/master),但不会改动任何本地分支的工作内容。

2、强制重置 master-upstream分支,使其指向 upstream/master最新的提交

git branch -f master-upstream upstream/master

三、将更新合并到本地分支master#

1、切换到master分支

git switch master

2、将 master-upstream上的最新内容整合到 master分支

git merge master-upstream

四、解决任何冲突,完成合并后提交并推送代码到master#

git push origin master

小贴士:如何优雅地处理合并冲突?#

当你执行 git merge 看到提示 CONFLICT (content): Merge conflict in <file> 时,不要慌,按照这三步走:

  1. 找到“案发现场”

打开冲突的文件,你会看到 Git 自动标记的冲突区域:

<<<<<< HEAD
这里是你本地 master 分支的代码(你改动的内容)
======
这里是上游 master-upstream 分支的代码(别人改动的内容)
>>>>>> master-upstream
  1. 进行“人工裁决”
  • 保留一方: 删掉你不想要的那部分代码和所有的 <<<< ==== >>>> 标记。

  • 整合双方: 手动将两段代码逻辑合并在一起,然后删掉标记。

  • VS Code 技巧: 如果你用 VS Code,代码上方会出现快捷按钮(Accept Current Change / Accept Incoming Change),点一下即可自动完成。

  1. 告诉 Git 冲突已搞定

修改并保存文件后,必须执行:

# 1. 将解决后的文件标记为已暂存
git add <文件名>
# 2. 完成合并提交
git commit -m "fix: 解决与上游分支的合并冲突"

如果合并过程太乱,你想重头来过,可以执行 git merge —abort 瞬间回到合并前的干净状态,就像什么都没发生过一样。

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

将“上游项目”的更新合并到“我的项目”上
https://blog.olinl.com/posts/merge-upstream-branches/
作者
顾拾柒
发布于
2026-03-08
许可协议
CC BY-NC-SA 4.0

目录