1. 程式人生 > 其它 >merge remote-tracking branch 是什麼意思_Git極簡教程(3)--branch級別的操作

merge remote-tracking branch 是什麼意思_Git極簡教程(3)--branch級別的操作

技術標籤:merge remote-tracking branch 是什麼意思

兩個branch的合併(merge)

不同的remote之間是以branch來為單位來進行同步的,這就涉及到不同branch的合併了。我們先考慮一種簡單的情況來理解合併(merge)操作:

d523b9852baa0dc0d4784d0bb6d617fd.png

左邊是兩臺電腦上的情況,上面的人有三個改動,增加了a.txt檔案,增加了b.txt檔案,增加了c.txt檔案;下面的人也有三個改動,增加了a.txt檔案,增加了b.txt檔案,增加了d.txt檔案。如何合併這兩個人的修改呢?最直觀的方式,就是保留相同的修改,把不同的修改都保留,就好啦,像右邊的圖那樣,最後,保留了四個改動:增加了a.txt檔案,增加了b.txt檔案,增加了c.txt檔案,增加了d.txt檔案。

所以,簡單理解,如何合併兩個branch呢?

  1. 保留兩個branch相同的改動
  2. 保留兩個branch不同的改動

這麼一想,合併似乎很簡單,把改動做個並集就行了。其實並不是的,兩個branch合併的時候,有時候會有衝突,比如:

5df4a789975008e1f20075f17d83b4f9.png

左邊是兩個branch,模擬的是一個只有兩行的檔案。第一次改動,把第一行寫上了a,第二次,兩個branch分別在第二行寫上了b和c,那麼,在合併的時候,第一個公共的改動保留就可以了,可是第二個改動改採取哪一種呢?這就是改動發生了衝突(conflict),需要人來決定第二行該是什麼內容,是b還是c還是bc,這叫衝突解決(resolve conflict)。

到這裡,我們從概念上理解了兩個branch是如何合併成一個branch的。

對於極簡教程而言,我們不需要建立branch,只要使用預設的名為master的branch就好了。我們主要是和origin這個remote同步,而origin也有一個預設叫master的branch。所以,我們的主要任務是瞭解如何合併 master 與 origin/master。

git pull

這個命令是更新origin(比如朋友提交了新的改動,需要同步),然後把master與origin/master合併,把合併後的叫做新的master。其實,這個命令等價於下面的兩個命令的組合:

git fetch origin
git merge origin/master

第一行就是更新origin,第二行是合併兩個分支。

這個命令就是保持與最新的公共版同步。

在開始工作之前,請先 git pull , 保持與朋友的最新版處於同步狀態,避免衝突。

如果衝突了,那隻能手動解決。推薦使用VS Code解決。

b91e39fe9a2767bd2a51b6619fb87a3f.png

檢測到一個檔案有衝突時,VS Code在開啟的時候就會明顯地顯示出來,大部分時候只要點一下上面四個按鈕裡面的一個就可以達到效果。

修改好之後,執行 git add -u && git merge --continue 就可以啦。

git push

當我們在自己的電腦上做出了一些改動的時候,我們可以用這條命令把自己電腦上的改動同步到雲端。

branch級別的操作就介紹到這裡,後面再介紹怎麼儲存每一個改動。