gitlab或github下fork後如何同步源的新更新內容?
gitlab或github下,a開發者fork了b開發者的項目後,如果b開發人員更新代碼後,a開發者如何獲得更新?
或者推薦一個滿足該場景的工作流。不勝感激!
Configuring a remote for a forkSyncing 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 addgit fetchgit 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上進行相應的更新?