標籤:

gitlab或github下fork後如何同步源的新更新內容?

gitlab或github下,a開發者fork了b開發者的項目後,如果b開發人員更新代碼後,a開發者如何獲得更新?

或者推薦一個滿足該場景的工作流。不勝感激!


Configuring a remote for a fork

Syncing a fork

上面兩個鏈接是GitHub官方的幫助文檔中關於fork同步的說明。

如果你懶得看英文,寫可以看我的博客:同步一個 fork

--------------------------

簡單的說就是:

  • 給fork配置遠程庫
    • 使用

      git remote -v

      查看遠程狀態

    • 確定一個將被同步給 fork 遠程的上游倉庫

      git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git

    • 再次查看狀態確認是否配置成功。

  • 同步fork
    • 從上游倉庫 fetch 分支和提交點,提交給本地 master,並會被存儲在一個本地分支 upstream/master

      git fetch upstream

    • 切換到本地主分支(如果不在的話)

      git checkout master

    • 把 upstream/master 分支合併到本地 master 上,這樣就完成了同步,並且不會丟掉本地修改的內容。

      git merge upstream/master

    • 如果想更新到 GitHub 的 fork 上,直接

      git push origin master

      就好了。


git remote add

git fetch

git rebase/merge

git push


樓上兩位是正解。

補充一下就是,merge remote操作現在可以在Github客戶端中點擊「update from xxx」很方便地完成了。

除此之外,你當然也可以從上游版本提一個pull request到你的fork版本,然後自己執行合併,好處就是你可以很方便地進行diff和merge,雖然這樣有些大材小用了。


可是這樣好像都會有一個問題:按照以上你們的方式同步以後,我fork的的倉庫,裡面始終會有一個merge commit,這樣的等我再次向社區提交代碼的時候 pull request 裡面總會帶一個merge的commit,然後。。。然後就被人用郵件通知重新更新再提交


參考: Syncing a fork

如果fetch的時候報錯 需要add remote一下


下載github客戶端


剛好今天研究了github協同開發問題。常見的辦法有兩種:

1.通過邀請的方式,共同開發。適合小團隊

2.通過fork方式。可以用純命令行或者github頁面操作方式進行。

詳細操作步驟和命令截圖可以參考這裡:

github協同工作


推薦閱讀:

git怎麼控制成員的許可權?
如何優雅地使用 Git?
github for windows安裝失敗了,怎麼辦?
github上怎麼刪除一個文件夾?
github 自己創建了一個項目A,我的同事fork一個B,當我的項目更新的時候,怎麼樣在他fork的repo上進行相應的更新?

TAG:Git | GitHub |