fork別人的項目保持與源項目同步更新的兩種方式

fork別人的項目保持與源項目同步更新的兩種方式

一、需求場景

我們經常使用別人的一些開源項目,並在此基礎上進行自己的進一步開發。常用的就是fork別人的代碼到本地,然後繼續開發後再提交到自己的git倉庫中。這樣就會產生一個問題,就是別人的代碼更新後,我們無法同步更新被人的代碼。本文主要用兩種方式來保證自己本地的代碼和別人的代碼同步。

二、解決方案

1. 使用git的upstream方式

此處我們以在Github上開源的microsoft/terminal 這個項目爲例進行實操

  1. 打開該項目在Github上的地址microsoft/terminal
  1. 登錄自己的Github賬號
  1. 點擊fork, fork該項目到個人的倉庫中
    fork
  1. fork成功後跳轉到個人倉庫中,可以看到如圖紅色標註所示,表明該項目是自己fork而來
  1. 克隆該項目到本地pc,然後打開該項目
  1. 此處爲了方便大家參考,接下來的操作我們直接使用git命令
    使用git 命令查看當前的remote信息
git remote -v

  1. 關鍵的操作來了,接下來我們添加源碼的原倉庫,作爲我們本git倉庫的上游,
    git remote add upstream https://github.com/microsoft/terminal.git
  2. 添加完成後再次查看remote 信息,會顯示如下:
  1. 獲取源倉庫的最新代碼
  2. 例如源代碼的master分支有更新,我們要合併到我們本地的代碼分支上只需要執行如下操作git merge upstream/master
  3. 執行完成後,就會發現本地代碼已經更新到最新,如果有衝突需要我們解決衝突,解決完成後,執行git push origin
  4. 每次源代碼有更新都只需要重複第7–11步即可。

2. 使用git的分支方式來解決

  1. 前面的步驟都參考第一種方式1-6步
  2. 我們添加遠程分支的模式來進行代碼的合併,git remote add microsoft https://github.com/microsoft/terminal.git
  3. 上述操作中的分支別名mircosoft可以隨便去,易於辨識即可
  4. fetch分支代碼,並進行合併
git fetch microsoft
git merge microsoft/master

  1. 執行完成後,就會發現本地代碼已經更新到最新,如果有衝突需要我們解決衝突,解決完成後,執行git push origin每次源代碼有更新都只需要重複第4步即可。

三、總結

git 畢竟出自大師之手,我們開發過程中遇到的常見場景和痛點,他基本都考慮到了,有啥問題仔細閱讀官方文檔,絕對有意想不到的驚喜。既然選擇了Git這個神器,就要用“偷懶”的思維去思考開發和團隊協作過程中遇到的問題。尋求最高效,可靠的解決方案。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章