我们在 GitHub 上参与到某个开源项目的时候,通常有以下开发步骤。
Pull Request
,等待审核人审核代码通过后,我们的分支就被合并到原仓库中这是一个典型的 Github 开发流程
而在这个过程中,原仓库的代码经常会变动,而 GitHub 不会帮我们自动同步原仓库的代码,我们不确保自己修改的代码是否是最新的。因此我们就面临这样的一个问题:“Github 进行 fork 后的仓库,如何与原仓库同步?”
下面是楼主给大家总结出来的解决方法
$ git remote -v # 查看当前的上游代码库
origin https://github.com/AFine970/weekly.git (fetch)
origin https://github.com/AFine970/weekly.git (push)
$ git remote add upstream https://github.com/IDuxFE/weekly.git # 再设置一个上游代码库
$ git remote -v
origin https://github.com/AFine970/weekly.git (fetch)
origin https://github.com/AFine970/weekly.git (push)
upstream https://github.com/IDuxFE/weekly.git (fetch)
upstream https://github.com/IDuxFE/weekly.git (push)
$ git fetch upstream # 拉取新设置的上游代码库
$ git checkout main # 切换本地分支到main分支
# 使用Pull拉取分支
$ git pull --rebase upstream main # 将上游仓库的main分支通过rebase的形式拉取到本地main分支
# 或者使用Merge
$ git merge upstream main # 使用Merge会多一条merge commit,而pull --rebase不会有
$ git push origin main # 再将本地的分支推送到自己的远程仓库
上述两种办法,都能很好的解决Github进行fork后如何与原仓库同步
问题。第一种方法最暴力,也最直接;第二种方法可持续性,设置了 fork 仓库的上游代码源之后,后续都可以通过第六步进行代码同步更新。
如果你有什么更好的办法,欢迎在评论区讨论
最后,好好学习不会差!我是 970,咱们一起进步