二三事🥝 - fork
type: channel
link: https://hidden.20220403.eu.org/index.php/tag/fork/
items: Github仓库进行fork并修改后，如何与上游仓库同步

Github仓库进行fork并修改后，如何与上游仓库同步
type: item
date: 2023-11-12T20:09:00+08:00
description: 前言本人非代码科班出身，所以平时很多GitHub项目都是直接fork的别人。有时候看到其他人修改，然后自己也琢磨着在自己的仓库上修改。过一段时间，发现fork的上游仓库有更新，但本地我自己也做了一些修改。我遇到的问题就是怎么合并我的仓库和上游仓库。本文仅作学习记录环境设定注：我的仓库设置在VPS上，本地PC或者Linux同理cd命令进入本地设置好的仓库目录执行命令git remote -v发现只有上面2行，说明我还未设置 upstream （即上游仓库）执行命令 git remote add upstream https://github.com/fscarmen2/Argo-Nezha-Service-Container.git把fscarmen2/Argo-Nezha-Service-Contain设置为上游仓库再次执行命令git remote -v出现了upstream，说明设置成功执行命令 git status 检查本地是否有未提交的修改如果有未提交的有效修改，则执行以下代码：git add -A 或者 git add filenamegit commit -m "your note" git push origin master最后再执行一次git status开始同步执行命令 git fetch --all ，获取我的远程仓库和上游仓库的更新，但不会自动修改当前分支也可以单独更新上游仓库：git fetch upstream执行命令 git checkout main 切换到 本地main 分支执行命令 git merge upstream/main ，把上游仓库合并到本地main分支执行命令 git push 把本地仓库向我的远程github仓库推送修改结束这样，我就把自己fork的旧版代码并经过自己修改的GitHub仓库，和最新的上游仓库合并了！新代码包含了上游仓库的最新代码和我的修改代码