2011-09-17 106 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