fork別人的項目保持與源項目同步更新的兩種方式
一车柠、需求場景
我們經常使用別人的一些開源項目,并在此基礎上進行自己的進一步開發(fā)洞坑。常用的就是fork別人的代碼到本地缠局,然后繼續(xù)開發(fā)后再提交到自己的git倉庫中。這樣就會產生一個問題妈拌,就是別人的代碼更新后拥坛,我們無法同步更新被人的代碼蓬蝶。本文主要用兩種方式來保證自己本地的代碼和別人的代碼同步。
二猜惋、解決方案
1. 使用git的upstream方式
此處我們以在Github上開源的microsoft/terminal 這個項目為例進行實操
> 1. 打開該項目在Github上的地址
microsoft/terminal
> 2. 登錄自己的Github賬號
> 3. 點擊fork, fork該項目到個人的倉庫中
> 4. fork成功后跳轉到個人倉庫中丸氛,可以看到如圖紅色標注所示,表明該項目是自己fork而來
> 5. 克隆該項目到本地pc著摔,然后打開該項目
> 6. 此處為了方便大家參考缓窜,接下來的操作我們直接使用git命令
使用git 命令查看當前的remote信息
git remote -v
> 7. 關鍵的操作來了,接下來我們添加源碼的原倉庫谍咆,作為我們本git倉庫的上游禾锤,
git remote add upstream https://github.com/microsoft/terminal.git
> 8. 添加完成后再次查看remote 信息,會顯示如下:
> 9. 獲取源倉庫的最新代碼
> 10. 例如源代碼的master分支有更新摹察,我們要合并到我們本地的代碼分支上只需要執(zhí)行如下操作
git merge upstream/master
> 11. 執(zhí)行完成后恩掷,就會發(fā)現本地代碼已經更新到最新,如果有沖突需要我們解決沖突供嚎,解決完成后黄娘,執(zhí)行
git push origin
> 12. 每次源代碼有更新都只需要重復第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
> 5. 執(zhí)行完成后劝赔,就會發(fā)現本地代碼已經更新到最新誓焦,如果有沖突需要我們解決沖突,解決完成后望忆,執(zhí)行
git push origin
每次源代碼有更新都只需要重復第4步即可罩阵。
三、總結
git 畢竟出自大師之手启摄,我們開發(fā)過程中遇到的常見場景和痛點稿壁,他基本都考慮到了,有啥問題仔細閱讀官方文檔歉备,絕對有意想不到的驚喜傅是。既然選擇了Git這個神器,就要用“偷懶”的思維去思考開發(fā)和團隊協(xié)作過程中遇到的問題蕾羊。尋求最高效喧笔,可靠的解決方案。