2

違いは何ですか:

git push origin HEAD:refs/for/master

git push オリジン refs/for/master

2 番目のコマンドも、変更をリモート リポジトリにプッシュしoriginて HEAD を移動するべきではありませんか?

4

1 に答える 1

4

'refspec' オプションは 'repository' 名に従っています。

--help ページによると、refspec の形式は次のとおりです。

<source ref>:<destination ref>

通常、refs はブランチの名前であり、'source ref' を使用して 'destination ref' を更新することを意味します。
そう

git push origin HEAD:refs/for/master

HEAD(現在のブランチ)を使用してリモートマスターを更新することを意味し

ます。「宛先参照」部分を省略することもできます。その場合、git は「source ref」とまったく同じ名前のリモート ブランチを見つけようとします。
そう

git push origin refs/for/master

ローカルの 'refs/for/master' ブランチを使用してリモートの 'refs/for/master' ブランチを更新することを意味します。

ただし、/for/ は、ローカル リポジトリではなく gerrit によって使用されます。そのため、git はローカルの 'refs/for/master' ブランチを見つけることができず、何もできません。

于 2013-07-11T09:51:41.647 に答える