Git,推向远程

时间:2012-01-19 17:42:43

标签: git

假设我在本地ABC,分支branch_Abranch_B

repo_A开始,有什么区别:

 - git push origin
 - git push origin branch_A
 - git push origin branch_A:branch_A

问题的原因是以下一系列事件,我发现令人惊讶:

11:05:56 ~/blah $ git push origin
Counting objects: 31, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (13/13), done.
Writing objects: 100% (17/17), 1.28 KiB, done.
Total 17 (delta 10), reused 0 (delta 0)
To ssh://git@mygit/myrepo.git
   141fc0d..d42c3b6  branch_B -> branch_B    // While i was in branch_A

11:06:02 ~/blah $ git branch
  branch_A
* branch_B 

1 个答案:

答案 0 :(得分:1)

git push origin行为的默认行为(如果您尚未自定义配置选项push.default)是推送所有“匹配”分支。这意味着每个本地分支都被推送到原始中具有相同名称的分支,只要具有该名称的分支已存在于原始中。在这种情况下,您似乎在branch_B和本地都有origin分支。

您引用的另外两个变体:

git push origin branch_A
git push origin branch_A:branch_A

....实际上是等效的 - 如果您没有在refspec中包含:来将源名称与目标名称分开,则它假定您在源和目标中使用相同的名称。