/ / Gitはどのようにワークフローのタイプを検出します:セントラルまたは非セントラル-git、git-workflow

Gitはどのようにワークフローのタイプを検出するのですか:centralまたはnon-central-git、git-workflow

Git-config あなたは見ることができます:

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

リモコンとは異なるリモコンにプッシュするとき 通常はプルし、カレントとして動作します。

そう Git のように働くことを決定する必要があります upstream または current。しかし、どのように Git ワークフローの種類を検出しますか?する Git ワークフローは centralized 理解した場合、私たちはと通信したい bare リポジトリ?

回答:

回答№1は5

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

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

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

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

プッシュすると、Gitはプッシュされようとしているローカルブランチの追跡ブランチとして設定した同じリモートの同じブランチ。これが一致する場合、このコンテキストで「中央ワークフロー」として定義されているものがあり、 upstream 使用されていない場合、または追跡ブランチが設定されていない場合(「not」の場合も)、 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 リモートブランチを追跡しません:
    • リモートへのプッシュ時に、アップストリームブランチを設定する必要があるというエラーが表示されます