回答:
基本的にそうです。A fork
は、GitHubがプロジェクトを複製してユーザー名で登録するためのリクエストです。GitHubは2つのリポジトリ間の関係も追跡するため、2つのプロジェクト(および他のフォーク)間のコミットとプルを視覚化できます。
たとえ使用していなくても、クローンされたリポジトリからプルするように要求することはできますが、fork
自分でそれを公開することに対処する必要があります。または、開発者git format-patch
がツリーに適用できるパッチ(を参照)を送信します。
git pull
。フォークは複数のコマンドを受け取ります。そして、当然のことながら、私が見るほとんどすべてのフォークは時代遅れです。フォークは、ステロイドに関するMavenリポジトリの問題のようなものです。古くなった1つのリポジトリ(Maven)の代わりに、何千ものリポジトリ(Git)があります。
git pull
ので、まだ何らかの関係が存在しています。コピー全体を複製して自分のローカルマシンに配置し、元のリポジトリから切断した場合。
リポジトリをフォークしていると言うときは、基本的にはGitHub IDでリポジトリのコピーを作成しています。ここで注意すべき重要な点は、元のリポジトリに加えられた変更は、分岐したリポジトリに反映されることです(フェッチしてリベースする必要があります)。ただし、フォークしたリポジトリに変更を加える場合は、元のリポジトリへのプルリクエストを明示的に作成する必要があります。プルリクエストが元のリポジトリの管理者によって承認された場合、変更は既存の元のコードベースにコミット/マージされます。それまでは、変更は分岐したコピーにのみ反映されます。
要するに:
フォーク&プルモデルを使用すると、誰でも既存のリポジトリをフォークして、ソースリポジトリへのアクセスを許可しなくても、自分のフォークに変更をプッシュできます。次に、プロジェクトメンテナが変更をソースリポジトリにプルする必要があります。
フォークした後、リポジトリ(自分の名前の下にあるもの)をマシンのローカルに複製できることに注意してください。変更を加え、フォークしたリポジトリにプッシュします。ただし、変更を元のリポジトリに反映するには、プルリクエストを承認する必要があります。
他の興味深い議論のカップル-
クローンとは、リポジトリの2つの(場合によっては異なる)バージョンを適切に複製および分離する場所です。1つのリポジトリが修正されると、pushコマンドを使用して、新しいコンテンツを他のリポジトリにアクティブにコピーする必要があります。そして、フェッチされた他のリポジトリの変更。
サーバー上でリポジトリをフォークする場合、両方のリポジトリが同じサーバーの同じ[固定オブジェクト]コンテンツを使用するため、コンテンツを複製する必要はありません。「トリック」は、各ユーザーがリポジトリの完全な個人用コピーを持っていると信じるように、さまざまなユーザーの視点を管理することです。フォーク間のプッシュとフェッチは、ユーザーのポインタを更新するだけです。
下位レベルでは、gitは内部で同じことを行います。3つの異なるファイルがあり、それぞれにが含まれているHello World
場合、gitはHello World blobの1つのコピーを単純に「フォーク」し、必要に応じて3つの場所それぞれにそれを提供します。
サーバーでforkできることは、Githubの大規模なストレージの許容量が平均してそれほど大きくないことを意味しています。
GitHubのもう1つの奇妙な微妙な違いは、変更が元のリポジトリにプルされるまで、フォークへの変更がアクティビティログにカウントされないことです。さらに、フォークを適切なクローンに変更するには、どうやらGithubサポートに連絡する必要があります。
コミットはフォークで行われました
フォークで行われたコミットは、あなたの貢献にはカウントされません。それらをカウントするには、次のいずれかを実行する必要があります。
プルリクエストを開いて、変更内容を親リポジトリにマージします。フォークを切り離してGitHubのスタンドアロンリポジトリに変換するには、GitHubサポートに連絡してください。フォークに独自のフォークがある場合は、フォークをリポジトリと共に新しいネットワークに移動するか、現在のネットワークに残すかをサポートに知らせてください。詳細については、「フォークについて」を参照してください。