に 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
リモートブランチを追跡しません:- リモートへのプッシュ時に、アップストリームブランチを設定する必要があるというエラーが表示されます