• 前言

  • 本人非代码科班出身,所以平时很多GitHub项目都是直接fork的别人。有时候看到其他人修改,然后自己也琢磨着在自己的仓库上修改。过一段时间,发现fork的上游仓库有更新,但本地我自己也做了一些修改。我遇到的问题就是怎么合并我的仓库和上游仓库。
  • 本文仅作学习记录
  • 环境设定

  • 注:我的仓库设置在VPS上,本地PC或者Linux同理
  • cd命令进入本地设置好的仓库目录
  • 执行命令git remote -v

    • 2023-11-12T10:21:22.png
    • 发现只有上面2行,说明我还未设置 upstream (即上游仓库)
  • 执行命令 git remote add upstream https://github.com/fscarmen2/Argo-Nezha-Service-Container.git

    • fscarmen2/Argo-Nezha-Service-Contain设置为上游仓库
    • 再次执行命令git remote -v
    • 2023-11-12T10:23:29.png
    • 出现了upstream,说明设置成功
  • 执行命令 git status 检查本地是否有未提交的修改

    • 如果有未提交的有效修改,则执行以下代码:

      • git add -A 或者 git add filename
        git commit -m "your note"
        git push origin master
    • 最后再执行一次git status
  • 开始同步

  • 执行命令 git fetch --all ,获取我的远程仓库和上游仓库的更新,但不会自动修改当前分支

    • 2023-11-12T10:24:05.png
    • 也可以单独更新上游仓库:git fetch upstream
  • 执行命令 git checkout main 切换到 本地main 分支
  • 执行命令 git merge upstream/main ,把上游仓库合并到本地main分支

    • 2023-11-12T10:24:19.png
  • 执行命令 git push  把本地仓库向我的远程github仓库推送修改

    • 2023-11-12T10:24:32.png
  • 结束

  • 这样,我就把自己fork的旧版代码并经过自己修改的GitHub仓库,和最新的上游仓库合并了!
  • 新代码包含了上游仓库的最新代码和我的修改代码