2012-01-19 21 views
2

私はブランチbranch_Abranch_Bを持つローカルABCにいるとします。 repo_AからGit、リモートにプッシュ

、間の相違点ものです:

- 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://[email protected]/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

これらのリポジトリ内のブランチ名であると思われる場合は、リポジトリを 'repo_A'と' repo_B'と呼ぶのは少し混乱します。 –

+0

@MarkLongair、あなたは絶対に正しいです。更新された – JAM

答えて

1

の振る舞いのデフォルトの動作git push origin(設定オプションpush.defaultをカスタマイズしていない場合)は、すべての「一致する」ブランチをプッシュすることです。つまり、各ローカルブランチは、その名前を持つブランチが既に起点にある場合は、という起点の同じ名前を持つブランチにプッシュされます。。この場合、originにブランチbranch_Bがあり、ローカルにあるようです。あなたが引用され

他の二つの変種:

git push origin branch_A 
git push origin branch_A:branch_A 

が....実際には同じです - あなたは宛先名からソース名を分離するためにrefspecで:が含まれていない場合、それはことを前提としていソースとデスティネーションで同じ名前を意味します。

+0

非常に良い答え。どうもありがとうございました – JAM

関連する問題