1. 程式人生 > >如何使得github上fork的repo與origin保持同步

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

acm ppc glm yep lob 其中 xxd bfc gym

在日常工作中使用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保持同步