關於git的倉庫同步指南
前言
我們都知道,GitHub是一個方便多人協作的託管平臺.如何將本地local倉庫、個人遠程origin倉庫(GitHub上的倉庫)和遠程upstream倉庫(在GitHub上fork別人的倉庫)進行同步是多人協作的前提.那麼我們就來看一下,過程該如何進行
情景描述
前提:
A與B兩人協作管理同一個upstream遠程倉庫,且本次操作A、B同時fork.
場景一:
現實中我們經常出現這種問題:A fork了遠程upstream倉庫,幾天之後upstream倉庫更新了新的版本,此時A的個人倉庫與origin倉庫已經落後,如果這個時候A 在落後的版本上繼續commit,就會頻頻出錯,那麼A就需要更新本地倉庫,在最新的基礎上再操作.
場景二:
A在最新的版本上進行了自己的修改,並且已經push到upstream倉庫,此時upstream版本已被A更新. B想要同步A的此次更新需要fetch遠程upstream倉庫(此時local 已更新),再將local 倉庫push到本地origin倉庫.完成同步的操作.
圖形詳解
實際操作
場景一解決方法
獲取代碼庫
1 、 fork別人的倉庫到自己的GitHub
2、將fork到的倉庫clone到本地local
同步更新代碼
因爲fork並不能將所有東西都複製過來,這個操作只是獲取到了路徑,所以此時local倉庫和upstream遠程倉庫並不同步,想要同步需先fetch(見操作3)
3、使A local倉庫和遠程upstream倉庫的master分支同步
$ git fetch upstream
$ git rebase upstream/master
4、A在本地對代碼進行修改之後,在SmartGit進行commit提交操作,然後push到自己的origin倉庫
$ git push origin master
5、去GitHub提pr
到此就已經完成了所有操作,如果原作者同意你的pr申請,你就成功的對upstream的代碼進行了修改
場景二解決方法
6、B想要更新到upstream倉庫的最新版本,就必須在終端進行fetch,rebase等操作(同上3)
7、B的local倉庫已同步,需要將最新版本push到B自己的origin倉庫,使origin倉庫更新
結語
好啦,到這裏我們就能清楚的理解倉庫同步的重要性以及如何同步各個倉庫了.
感謝閱讀,下期再會.
原創作者:田晨晨、趙笑漫
日 期:2019年1月31日