2010-01-06 2753 views
8

在上游拉動部分改變help.github's Forking a project它指出:爲什麼在命令`git fetch upstream master`中包含`master`?

一段時間已經過去了,上游回購已發生變化,你想你提交一個新的補丁之前更新你的叉子。有兩種方法可以做到這一點:

$ git fetch upstream master 

$ git merge upstream/master 

爲什麼他們包括在讀取命令master?我已經看了git help fetch信息,但我不明白什麼包括master。謝謝。

回答

6

這使您可以:

  • 更新主您當地版本的上游分支只(而不是作爲更新上游回購的所有分支,它可以是更長的時間才能做)
  • 沒有觸發合併馬上(而不是在拉命令)

git merge將嘗試合併上游的本地版本掌握你的回購主分支。

所以在這裏,主是fetch命令,一個refspec。

<refspec> 

一個<refspec>參數的格式是可選的加+,接着是源REF <src>,後跟一個冒號:,接着目的地REF <dst>

獲取與<src>匹配的遠程參考,如果<dst>不是空字符串,則使用<src>快速轉發與其匹配的本地參考。
如果使用可選外加+,則即使本地ref未導致快進更新,也會更新本地ref。

這裏,<dst>爲空,所以匹配的本地分支(您的主分支)被更新。


沒有高手,那將給:

git fetch upstream 

上述命令將文件從遠程refs/heads/命名空間,並將其存儲到本地refs/remotes/upstream/命名空間的所有分支,除非branch.<name>.fetch選項用於指定一個非默認的refspec。

相關問題