push.default
refspecが明示的に指定されていない場合にgit pushが実行するアクションを定義します。さまざまな値が特定のワークフローに適しています。たとえば、純粋に中心的なワークフロー(つまり、フェッチソースがプッシュ宛先と等しい)では、おそらくアップストリームが必要です。可能な値は次のとおりです。
なし-refspecが明示的に指定されていない限り、何もプッシュしません(エラー)。これは主に、常に明確にすることで間違いを避けたい人を対象としています。
current-現在のブランチをプッシュして、受信側の同じ名前のブランチを更新します。中央ワークフローと非中央ワークフローの両方で機能します。
アップストリーム-現在のブランチを、変更が現在のブランチに統合されているブランチ(@ {upstream}と呼ばれる)にプッシュします。このモードは、通常プルするのと同じリポジトリ(つまり、中央ワークフロー)にプッシュする場合にのみ意味があります。
シンプル-一元化されたワークフローでは、上流のブランチの名前がローカルのブランチの名前と異なる場合にプッシュを拒否する安全性が追加された上流のように機能します。
通常プルするリモートとは異なるリモートにプッシュする場合は、現在の状態で作業します。これは最も安全なオプションであり、初心者に適しています。
このモードはGit 2.0のデフォルトになります。
マッチング-両端に同じ名前を持つすべてのブランチをプッシュします。これにより、プッシュするリポジトリは、プッシュされるブランチのセットを思い出すようになります(たとえば、メイントとマスターを常にプッシュし、他のブランチがない場合、プッシュするリポジトリには、これらの2つのブランチとローカルのメイントとマスターがあります。そこにプッシュされます)。
このモードの要点は、一度にすべてのブランチをプッシュできるようにすることです。通常、1つのブランチのみで作業を終了して結果をプッシュし、他のブランチは未完成の場合、このモードは適していません。また、他の人々が新しいブランチをそこに追加したり、コントロールの外にある既存のブランチのチップを更新したりする可能性があるため、このモードは共有の中央リポジトリへのプッシュには適していません。
これは現在デフォルトですが、Git 2.0はデフォルトをシンプルに変更します。