git 推送问题

标签 git

我一直在网上四处寻找,找不到它的作用:

git push origin master:refs/heads/master

和just plain有什么区别:

git push origin master

谢谢。

最佳答案

在 v1.5.5.2 之前的 git 版本中,这些命令之间有一个重要的区别。如果该分支尚不存在,则需要在 refspec 的目标端使用 ref 的全名。 (更改此行为的提交有 an interesting description of the change 。)

在当前版本的 git 中,两者之间没有区别,只要 master 在目标存储库中是明确的——几乎总是这样,除非你做了一些故意混淆的事情,比如创建一个名为 master 的标签。当您执行 git push origin master 时,git 会尝试将 master 解释为 refspec。由于此 refspec 没有 : 分隔源和目标 refs,因此默认情况下它假定您的意思是:

git push origin master:master

... 那些不完整的 ref 名称在两侧都扩展为 refs/heads/master(同样,只要 master 在源代码和目标存储库)。

关于git 推送问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7455445/

相关文章:

git - merge 后继续git分支是否常见?

git - 解释哪个 gitignore 规则忽略了我的文件

git - 为什么我的 git 预提交钩子(Hook)不修剪行尾的空白?

eclipse - 如何在 Windows 上通过 SSH 使用 EGit?

git - 如何在从 git config --edit 更改行后保存配置

git - Netbeans 和 Git,忽略 .obj 文件

git - "git remote"是什么意思?

当 origin/develop 领先于我的本地开发分支时,git flow release 开始

git 看不到文件...如何理解哪里出了问题?

git - 如何将单个提交归因于多个开发人员?