300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Github进行fork后的仓库 如何与原仓库同步?

Github进行fork后的仓库 如何与原仓库同步?

时间:2019-08-02 06:54:19

相关推荐

Github进行fork后的仓库 如何与原仓库同步?

背景

我们在 GitHub 上参与到某个开源项目的时候,通常有以下开发步骤。

fork 一份原仓库到我们自己的仓库中,在自己的仓库中切新的分支进行开发,开发完成之后,再推送到自己的仓库在原仓库进行Pull Request,等待审核人审核代码通过后,我们的分支就被合并到原仓库中

这是一个典型的 Github 开发流程

而在这个过程中,原仓库的代码经常会变动,而 GitHub 不会帮我们自动同步原仓库的代码,我们不确保自己修改的代码是否是最新的。因此我们就面临这样的一个问题:“Github 进行 fork 后的仓库,如何与原仓库同步?”

下面是楼主给大家总结出来的解决方法

解决方法

方法一:删掉自己名下 fork 的仓库,再 fork 一次(最暴力也是最快的)

第一步,进去自己的仓库,切换到Settings页签 第二步,页面滑到最下面,点击Delete this repository,进行二次确认即可删除 第三步,再次去 fork 一次原仓库

方法二:设置上游代码库,拉取 GitHub 仓库最新代码后,在 Merge 或 Pull 到本地

第一步,查看当前的上游代码库

$ git remote -v # 查看当前的上游代码库origin /AFine970/weekly.git (fetch)origin /AFine970/weekly.git (push)

第二步,再设置一个上游代码库,为 fork 的仓库地址

$ git remote add upstream /IDuxFE/weekly.git # 再设置一个上游代码库$ git remote -vorigin /AFine970/weekly.git (fetch)origin /AFine970/weekly.git (push)upstream /IDuxFE/weekly.git (fetch)upstream /IDuxFE/weekly.git (push)

第三步,拉取新设置的上游代码库

$ git fetch upstream # 拉取新设置的上游代码库

第四步,切换本地分支到 main 分支

$ 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😎,咱们一起进步

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。