ブランチが指定されていない場合の「git push」のデフォルトの動作 質問する

ブランチが指定されていない場合の「git push」のデフォルトの動作 質問する

リモート ブランチにプッシュするには、次のコマンドを使用します。

git push origin sandbox

私が言うなら

git push origin

これにより、他のブランチにも変更がプッシュされますか、それとも現在のブランチのみが更新されますか? ブランチは 、 の 3 つmasterありproductionますsandbox

ドキュメントgit pushではこの点についてあまり明確ではないので、この点を明確にしておきたいと思います。

次のgit pushコマンドは正確にはどのブランチとリモートを更新しますか?

git push 
git push origin

origin上はリモコンです。

git push [remote] [branch]そのブランチのみがリモートにプッシュされることを理解しています。

ベストアンサー1

git configでpush.defaultを設定することでデフォルトの動作を制御できます。git-config(1) ドキュメント:

push.default

コマンドラインで refspec が指定されておらず、リモートで refspec が設定されておらず、コマンドラインで指定されたオプションのいずれにも refspec が暗黙的に指定されていない場合に、git push が実行するアクションを定義します。可能な値は次のとおりです。

  • nothing: 何も押さないでください

  • matching: (Git 2.0 より前のデフォルト) 一致するすべてのブランチをプッシュします

    両端に同じ名前を持つすべてのブランチは一致していると見なされます。

  • upstream: 現在のブランチを上流ブランチにプッシュします (trackingは上流の非推奨の同義語です)

  • current: 現在のブランチを同じ名前のブランチにプッシュします

  • simple: (Git 1.7.11 の新機能、Git 2.0 以降のデフォルト) アップストリームと同様ですが、アップストリーム ブランチの名前がローカル ブランチと異なる場合はプッシュを拒否します。

    これは最も安全なオプションであり、初心者に適しています。

シンプル、カレント、アップストリームモードは、他のブランチがまだプッシュアウトの準備ができていない場合でも、作業を終えた後に単一のブランチをプッシュアウトしたい人向けです。

コマンドラインの例:

現在の構成を表示するには:

git config push.default

新しい構成を設定するには:

git config push.default current

おすすめ記事