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

如何同步GitHub远程仓库更新且不覆盖本地已有修改?

Fork仓库同步上游更新且不覆盖本地改动的正确操作

你之前考虑的「先pull再手动补回修改」的方式不合理,操作风险高、效率低还容易漏改丢代码,按照下面的步骤操作可以完整保留本地已有改动,安全同步原作者的远程仓库更新:

    1. 绑定原作者仓库为上游远程源
      进入本地仓库根目录,执行命令绑定原仓库(只需要第一次同步前执行一次,后续不用重复操作):
      git remote add upstream 原作者仓库的Git克隆地址
      执行完成后可以用git remote -v验证,返回结果里能看到origin对应你自己fork的仓库地址、upstream对应原作者的仓库地址即为配置成功。
    1. 拉取上游仓库的最新提交
      执行命令拉取原仓库的所有最新内容:
      git fetch upstream
      这个操作只会把上游的更新拉取到本地的远程分支缓存区,绝对不会修改你本地工作区的任何已有代码,可以放心执行。
    1. 暂存本地未提交的改动(如果有)
      如果你本地的修改还没执行git commit提交,先临时把改动存到Git暂存栈,避免合并冲突:
      git stash
      执行完后工作区会回到干净状态,你的所有未提交修改都被安全存储,不会丢失。如果本地改动已经全部提交过,直接跳过这一步。
    1. 合并上游更新到本地分支
      切到你要同步的本地分支(通常是主分支main,老项目可能是master),执行合并命令:
      git merge upstream/main
      (如果原仓库主分支是master,把命令里的main替换成master即可)
      如果合并过程中出现代码冲突,Git会明确标记出冲突的文件位置,你只需要手动编辑解决冲突后,执行git add 冲突文件路径、git commit就完成合并,所有你之前提交过的本地改动都会被完整保留。
    1. 恢复之前暂存的本地未提交改动
      如果你之前执行过git stash,合并完上游更新后执行命令恢复暂存的内容:
      git stash pop
      如果恢复时出现和上游新代码的冲突,同样按照Git提示手动解决即可。

同步完成确认代码运行正常后,直接执行git push就能把合并了上游更新的本地代码推到你自己的fork仓库,后续提交PR时就不会出现和原仓库的代码冲突了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 00:45:47