2011-09-17 41 views
4

我一直在尋找在互聯網並不能找到什麼這樣做:混帳推問題

git push origin master:refs/heads/master 

有什麼用只是簡單的區別:

git push origin master 

感謝。

回答

6

在v1.5.5.2之前版本的git中,這些命令之間有一個重要的區別。如果該分支尚不存在,則需要在refspec的目標端使用ref的全名。 (改變此行爲的提交有an interesting description of the change。)

在當前版本的git中,只要master在目標存儲庫中是明確的,這兩者之間就沒有區別 - 這幾乎總是如此,除非您已經做了一些故意混淆的事情,比如創建一個名爲master的標籤。當你做git push origin master時,git試圖將master解釋爲refspec。由於此的Refspec沒有:分離源和目的地裁判,它假定在默認情況下,你的意思是:

git push origin master:master 

......而那些不完整的裁判的名字擴展到refs/heads/master兩側(同樣,只要master在源和目標存儲庫中都是明確的)。

+0

感謝您的澄清標記 –

3

沒有區別。一個只是另一個的更詳細的版本。

master:refs/head/master是說把你的本地master到遙控器refs/head/master

有關詳細信息,看看this頁面的最後部分。

+2

事實上,'混帳推行爲'不受跟蹤 - 它總是擴展到'混帳推'。 –

+0

感謝您的澄清標記。不知道。 – Andy