假设我在本地ABC,分支branch_A
和branch_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
答案 0 :(得分:1)
git push origin
行为的默认行为(如果您尚未自定义配置选项push.default
)是推送所有“匹配”分支。这意味着每个本地分支都被推送到原始中具有相同名称的分支,只要具有该名称的分支已存在于原始中。在这种情况下,您似乎在branch_B
和本地都有origin
分支。
您引用的另外两个变体:
git push origin branch_A
git push origin branch_A:branch_A
....实际上是等效的 - 如果您没有在refspec中包含:
来将源名称与目标名称分开,则它假定您在源和目标中使用相同的名称。