fork別人的項(xiàng)目保持與源項(xiàng)目同步更新的兩種方式

fork別人的項(xiàng)目保持與源項(xiàng)目同步更新的兩種方式

一、需求場(chǎng)景

我們經(jīng)常使用別人的一些開源項(xiàng)目,并在此基礎(chǔ)上進(jìn)行自己的進(jìn)一步開發(fā)。常用的就是fork別人的代碼到本地,然后繼續(xù)開發(fā)后再提交到自己的git倉(cāng)庫(kù)中。這樣就會(huì)產(chǎn)生一個(gè)問題,就是別人的代碼更新后,我們無法同步更新被人的代碼。本文主要用兩種方式來保證自己本地的代碼和別人的代碼同步。

二、解決方案

1. 使用git的upstream方式

此處我們以在Github上開源的microsoft/terminal 這個(gè)項(xiàng)目為例進(jìn)行實(shí)操

> 1. 打開該項(xiàng)目在Github上的地址

microsoft/terminal

> 2. 登錄自己的Github賬號(hào)

> 3. 點(diǎn)擊fork, fork該項(xiàng)目到個(gè)人的倉(cāng)庫(kù)中



> 4. fork成功后跳轉(zhuǎn)到個(gè)人倉(cāng)庫(kù)中,可以看到如圖紅色標(biāo)注所示,表明該項(xiàng)目是自己fork而來


> 5. 克隆該項(xiàng)目到本地pc,然后打開該項(xiàng)目


> 6. 此處為了方便大家參考,接下來的操作我們直接使用git命令

使用git 命令查看當(dāng)前的remote信息

git remote -v


> 7. 關(guān)鍵的操作來了,接下來我們添加源碼的原倉(cāng)庫(kù),作為我們本git倉(cāng)庫(kù)的上游,

git remote add upstream https://github.com/microsoft/terminal.git

> 8. 添加完成后再次查看remote 信息,會(huì)顯示如下:


> 9. 獲取源倉(cāng)庫(kù)的最新代碼


> 10. 例如源代碼的master分支有更新,我們要合并到我們本地的代碼分支上只需要執(zhí)行如下操作

git merge upstream/master

> 11. 執(zhí)行完成后,就會(huì)發(fā)現(xiàn)本地代碼已經(jīng)更新到最新,如果有沖突需要我們解決沖突,解決完成后,執(zhí)行

git push origin

> 12. 每次源代碼有更新都只需要重復(fù)第7--11步即可。


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

> 1. 前面的步驟都參考第一種方式1-6步

> 2. 我們添加遠(yuǎn)程分支的模式來進(jìn)行代碼的合并,

git remote add microsoft https://github.com/microsoft/terminal.git?


> 3. 上述操作中的分支別名mircosoft可以隨便去,易于辨識(shí)即可

> 4. fetch分支代碼,并進(jìn)行合并

git fetch microsoft

git merge microsoft/master


> 5. 執(zhí)行完成后,就會(huì)發(fā)現(xiàn)本地代碼已經(jīng)更新到最新,如果有沖突需要我們解決沖突,解決完成后,執(zhí)行

git push origin

每次源代碼有更新都只需要重復(fù)第4步即可。

三、總結(jié)

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 多種多樣的工作流使得在項(xiàng)目中實(shí)施Git時(shí)變得難以選擇。這份教程提供了一個(gè)出發(fā)點(diǎn),調(diào)查企業(yè)團(tuán)隊(duì)最常見的Git工作流。...
    JSErik閱讀 4,612評(píng)論 2 8
  • 聲明:這篇文章來源于廖雪峰老師的官方網(wǎng)站,我僅僅是作為學(xué)習(xí)之用 Git簡(jiǎn)介 Git是什么? Git是目前世界上最先...
    橫渡閱讀 4,141評(píng)論 3 27
  • Home 關(guān)于Gitee Gitee 是開源中國(guó)社區(qū)[http://www.oschina.net]團(tuán)隊(duì)基于開源項(xiàng)...
    奮拓達(dá)閱讀 2,509評(píng)論 0 3
  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,852評(píng)論 9 163
  • 前言 Git使用教程 Git是什么 Git是一個(gè)開源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項(xiàng)目。 ...
    90后的思維閱讀 1,027評(píng)論 0 0

友情鏈接更多精彩內(nèi)容