首页 > 代码库 > 如何使得github上fork的repo与origin保持同步

如何使得github上fork的repo与origin保持同步

在日常工作中使用github时,特别是在参与开源项目时,我们可能会需要从一个他人创建的Repository中,fork出这个项目到自己的Repository,而他人的Repository是没有给我们开放这个项目的直接维护权限的。

通常我们需要做的,是需要在自己的Repository中对此项目进行代码的增删改,提交到自己的Repository后,再创建一个PR(Pull Request)到他人的Repository。

这里面临的一个问题是,由于不只是我们自己在向这个项目贡献代码,其他人也可以fork,也可以PR,那么当原来的Repository中的代码更新了后(包括自己的PR被merge到原来的Repository),我们怎么才能确保自己Repository的代码也可以同步了呢?

在这之前,我们先看下github上的这篇文章

https://help.github.com/articles/syncing-a-fork/

在看过上述的文章后,再来理解下面的操作就会比较容易了。

以我所参与的nodejs中文翻译计划为例,此处使用TortoiseGit进行解释,步骤非常简单:

原库: https://github.com/nodejscn/node-api-cn

我自己的库:https://github.com/wxqsly/node-api-cn, 是从原库fork的

 

  • 使用TortoiseGit将自己的库的代码clone一份,并放在文件夹wxqsly下面,即wxqsy/node-api-cn
  • 在文件夹wxqsly中,右键选择node-api-cn,使用TortoiseGit的Git Sync工具

 技术分享

  •  在打开的Git Syncronization对话框中,点击Manage

技术分享

  • 在点击Manage按钮后弹出的Settings窗口中,选择左侧的Git->Remote,会出现配置Remote的相关信息

技术分享

 

将其中的URL配置为原库的URL,

Push URL配置为自己的库URL即可。

这样便能保证在每次下行更新时,是从原库更新并Merge原库中的变化;而在上行提交时,是提交到自己的库,自己再可以根据实际情况提交PR到原库。

如何使得github上fork的repo与origin保持同步