1

Git-configでは、以下を確認できます。

シンプル - 集中型ワークフローでは、アップストリーム ブランチの名前がローカル ブランチと異なる場合にプッシュを拒否する安全性が追加されたアップストリームのように動作します。

通常プルするリモートとは異なるリモートにプッシュする場合、現在のように動作します。

したがって、のように動作するか、またはGitのように動作するかを決定する必要があります。しかし、ワークフローの種類をどのように検出するのでしょうか? ワークフローとは、リポジトリと通信したいことを理解している場合ですか?upstreamcurrentGitGitcentralizedbare

4

1 に答える 1

6

リンクしたのとまったく同じドキュメントの説明でupstream、質問に対する答えが得られます。

このモードは、通常プルするのと同じリポジトリにプッシュする場合にのみ意味があります (つまり、中央ワークフロー)。

したがって、このコンテキストでの「中央ワークフロー」は、リベースまたはマージのどちらを使用するかに関係なく、「通常、最新のアップストリームの変更を取得するのと同じリポジトリにプッシュする」と定義されます。(構成とパラメーターに応じて、プル = フェッチ + マージまたはフェッチ + リベース)

「中央ワークフロー」があるかどうかは、このコンテキストではプッシュ コールごとに異なる可能性があります。プッシュしようとしているローカル ブランチにリモート トラッキング ブランチ (アップストリーム ブランチ) が設定されている場合、このトラッキング ブランチは通常、更新を取得する場所 (追跡するブランチ) であるため、リベースまたはマージを行う場合(もちろん、フェッチ+マージまたはフェッチ+プルのようにプルします)何をリベースするか、何をマージするかを指定せずに、リモート追跡ブランチが使用されます。

プッシュすると、Git は、プッシュしようとしているローカル ブランチのトラッキング ブランチとして設定した同じリモートの同じブランチにプッシュするかどうかを認識します。これが一致する場合、このコンテキストで「中央ワークフロー」として定義されupstream、使用されます。そうでない場合、または追跡ブランチが設定されていない場合 (「ない」場合もある)、current使用されます。

違いは次のとおりです。

現在:

  • ローカル ブランチfooはリモート ブランチを追跡しますbar/baz
    • fooリモートへのプッシュでは、特に言わない限り 、ブランチにプッシュします。
  • ローカル ブランチfooはリモート ブランチを追跡しますbar/foo
    • fooリモートへのプッシュでは、特に言わない限り 、ブランチにプッシュします。
  • ローカル ブランチfooはリモート ブランチを追跡しません。
    • fooリモートへのプッシュでは、特に言わない限り、ブランチにプッシュします。

上流:

  • ローカル ブランチfooはリモート ブランチを追跡しますbar/baz
    • リモートへのプッシュでは、特に言わない限り bar、ブランチにプッシュします。baz
    • 他のリモートにプッシュすると、リモートがアップストリームではないため、プッシュ先を正確に指定する必要があるというエラーが表示されます
  • ローカル ブランチfooはリモート ブランチを追跡しますbar/foo
    • リモートへのプッシュでは、特に言わない限り bar、ブランチにプッシュします。foo
    • 他のリモートにプッシュすると、リモートがアップストリームではないため、プッシュ先を正確に指定する必要があるというエラーが表示されます
  • ローカル ブランチfooはリモート ブランチを追跡しません。
    • リモートにプッシュすると、上流のブランチを設定する必要があるというエラーが表示されます

シンプル:

  • ローカル ブランチfooはリモート ブランチを追跡しますbar/baz
    • リモートbarにプッシュすると、名前が一致しないため明示的にプッシュするように指示するエラーが表示されます
    • 他のリモートへのプッシュでは、ブランチにプッシュしますfoo
  • ローカル ブランチfooはリモート ブランチを追跡しますbar/foo
    • fooリモートへのプッシュでは、特に言わない限り 、ブランチにプッシュします。
  • ローカル ブランチfooはリモート ブランチを追跡しません。
    • リモートにプッシュすると、上流のブランチを設定する必要があるというエラーが表示されます
于 2016-05-09T18:32:47.887 に答える