git push的不同分支定义

时间:2013-07-11 09:14:36

标签: git gerrit

有什么区别:

  

git push origin HEAD:refs / for / master

  

git push origin refs / for / master

第二个命令是否也应该将更改推送到远程仓库origin并移动HEAD?

1 个答案:

答案 0 :(得分:3)

'refspec'选项遵循'repository'名称。

根据--help页面refspec是

的形式
<source ref>:<destination ref>

refs通常是分支的名称,这意味着你使用'source ref'来更新'destination ref' 所以

git push origin HEAD:refs/for/master

表示使用HEAD(当前分支)更新远程主站

您也可以省略'destination ref'部分。如果你这样做,git会尝试找到名称与'source ref'完全相同的远程分支。
所以

git push origin refs/for/master

表示使用本地'refs / for / master'分支来更新远程'refs / for / master'分支。

但/ for /由gerrit使用而不是您的本地存储库。所以git找不到本地'refs / for / master'分支,也无法做任何事情。