git推问题

时间:2011-09-17 14:21:37

标签: git

我一直在寻找互联网,无法找到它的作用:

git push origin master:refs/heads/master

与普通人有什么区别:

git push origin master

感谢。

2 个答案:

答案 0 :(得分: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在源和目标存储库中都是明确的。)

答案 1 :(得分:3)

没有区别。一个是另一个更冗长的版本。

master:refs/head/master说要将您的本地master推送到遥控器refs/head/master

有关详细信息,请查看this页面的最后一部分。