2011-09-17 14 views
4

私はインターネットを中心に見てきたし、これが何を見つけることができません。Gitのプッシュ質問

git push origin master 

ありがとう:

git push origin master:refs/heads/master 

単なるとの違いは何ですか。

答えて

6

v1.5.5より前のバージョンのgitでは、これらのコマンドに重要な違いがありました。 refspecの宛先側でrefのフルネームを使用する必要があるのは、そのブランチがまだ存在していない場合です。 (この動作を変更したコミットはan interesting description of the changeです。)

masterが宛先リポジトリで明白である限り、現在のバージョンのgitでは違いはありません。これはほとんどの場合ですmasterというタグを作成するような意図的な混乱を起こした。 git push origin masterを実行すると、gitはmasterをrefspecとして解釈しようとします。このrefspecは、送信元と送信先、引用文献を隔てる何:を持っていないので、それはあなたが意味デフォルトで前提としています

git push origin master:master 

...と、それらの不完全な参照名は限りmasterとして、再び(両側にrefs/heads/masterに展開されていますソースリポジトリとデスティネーションリポジトリの両方で明白です)。実際に

+0

明確化マークありがとう –

3

違いはありません。 1つは他のバージョンのほんの冗長バージョンです。

master:refs/head/masterthisページの最後の部分を見て、詳細についてはrefs/head/master

リモコンにあなたの地元のmasterを押してくださいと言っています。

+2

、Gitのプッシュ 'の行動'追跡の影響を受けていない - それは常にGitのプッシュ 'に拡大しています:'。 –

+0

明確化マークをありがとう。それを知らなかった。 – Andy