3

次のコマンドはどのように機能しますか。

git config remote.origin.push refs/heads/master:refs/heads/master

次のコマンドに関連します。

git config push.default <option>

(--local または--globalオプションを使用)

<option> 次のいずれかです。

nothing
matching
upstream (formerly tracking)
current
simple

?

2 番目の config コマンドは理解できたと思いますが、最初のコマンドが 2 番目のコマンドをどのように条件付け/関連付けているかがわかりません。この質問の背後にあるコンテキストを提供する参考文献を次に示します。

4

1 に答える 1

7

実行すると:

git push origin ...

に設定されているものは、 に設定されているremote.origin.pushものをオーバーライドしますpush.default。より一般的には、が設定されていない場合 (ここでは)、git は にフォールバックし、それも設定されていない場合は、リンクに記載されている組み込みのデフォルトにフォールバックします。remote.name.pushnameoriginpush.default

(編集:以下の Breaking Benjamin のコメントとそれに対する私の返信に記載されているように、少なくとも 1 つの refspec を含む部分がある場合、refspec はオーバーライドします。そのため、コマンド ラインで明示的または暗黙的に名前を付け、すべて省略した場合にのみ適用されます。コマンド ラインでも refspecs. たとえば、引数なしで を検出したり、追加の引数がない場合、Git は設定を検索して使用しますが、設定は使用しません. もちろん、上記の部分にはさらにフラグを含めることができます.したがって、この時点での正しい質問は、...remote.origin.pushremote.origin.pushorigingit pushorigingit push originremote.origin.pushgit push origin xyz remote.origin.push......part には refspec が含まれます。)

ご了承ください:

git config --local na.me value

なしと同じことを意味し--localます。値を設定する場合 (ここのように) --local、、、--globalおよびオプションは、値が設定される場所を制御しますが、デフォルトです。--file filename--local

(値を取得する場合:

git config na.me

[またはgit config --getまたはgit config --get-allまたはgit config --get-regexp]、--localなどのオプションは、gitがどこから読み取るかを制限し、1つがなければ、それらすべてから読み取ります。何かが複数の場所に設定されている場合、「最もローカル」が「ローカルではない」をオーバーライドします。 )

于 2013-10-21T21:02:49.113 に答える