git之學習要點 遠端分支與衍合

2021-06-09 17:29:29 字數 1749 閱讀 3804

先看圖,不說話

git fetch origin 之後……

注意:git fetch 命令會更新 remote 索引。

看完圖之後,以下語法要搞清楚:

推送本地serverfix -> serverfix(origin): $ git push origin serverfix

通過此語法,你可以把本地分支推送到某個命名不同的遠端分支:

若想把遠端分支叫作awesomebranch,可以用:git push origin serverfix:awesomebranch來推送資料。

接下來,當你的協作者再次從伺服器上獲取資料時($ git fetch origin),他們將得到乙個新的遠端分支origin/serverfix

有的只是乙個你無法移動的origin/serverfix指標。

如果要把該內容合併到當前分支,可以執行git merge origin/serverfix

如果想要乙份自己的serverfix來開發,可以在遠端分支的基礎上分化出乙個新的分支來:$ git checkout -b serverfix origin/serverfix

(git checkout -b [分支名] [遠端名]/[分支名]。)

從遠端分支checkout出來的本地分支,稱為

跟蹤分支(tracking branch)。

在跟蹤分支裡輸入git pushgit pullgit 會自行推斷。

$ git checkout --track origin/serverfix  相當於$ git checkout -b serverfix origin/serverfix

刪除遠端分支

git push [遠端名] :[分支名]。

1. git fetch

:相當於是從遠端獲取最新版本到本地,不會自動merge:

git fetch origin master

2. git pull

:相當於是從遠端獲取最新版本並merge到本地:git pull origin master

例子:$ git checkout experiment

它的原理是: 回到兩個分支最近的共同祖先c2,生成一系列檔案補丁,放在c4後面(master的後面),得到(c3'),以及experiment分支。

例子:$ git rebase --onto master server client

它的原理是:首先找到server client共同的節點c3,將c3到client的c8,c9 rebase……

git分支的衍合

把乙個分支中的修改整合到另乙個分支的辦法有兩種 merge和rebase,當開發程序分叉到兩個不同的分支,又各自提交了更新。最容易的整合分支的方法是merge,它會把兩個分支最新的快照以及兩者的共同祖先進行三方合併,合併的結果是產生乙個新的提交物件。其實還有另外乙個選擇,可以在乙個分支裡發生的變化補...

git分支的衍合

一般我們使用衍合的目的,是想要得到乙個能在遠端分支上乾淨應用的補丁 比如某些專案你不是維護者,但想幫點忙的話,最好用衍合 先在自己的乙個分支裡進行開發,當準備向主專案提交補丁的時候,根據最新的 origin master 進行一次衍合操作然後再提交,這樣維護者就不需要做任何整合工作 譯註 實際上是把...

git學習五(分支的衍合rebase)

它的原理是回到兩個分支最近的共同祖先,根據當前分支 也就是要進行衍合的分支experiment 後續的歷次提交物件 這裡只有乙個 c3 生成一系列檔案補丁,然後以基底分支 也就是主幹分支master 最後乙個提交物件 c4 為新的出發點,逐個應用之前準備好的補丁檔案,最後會生成乙個新的合併提交物件 ...