回答:
GitHubのすべてのブランチがフォークにコピーされます。(明らかに、これにはそもそもGitHubにプッシュされなかったブランチは含まれません。)
しかし、フォークはGitHub-to-GitHubオペレーションです。PCには何もコピーされません。Git クローンとはまったく同じではありません。「プロジェクトを複製すると何がコピーされるのか」と質問する場合は、のマニュアルを参照してくださいgit-clone(1)
。
次のように考えてください。
リポジトリは、1つ以上のブランチにわたるチームの共同作業に対応します。すべての寄稿者は、独自のコピーを持っています。
メインリポジトリの各フォークは、寄稿者の作業に対応しています。フォークは、実際にはユーザーアカウントにリポジトリのクローンを格納するためのGithub(Gitではない)構造です。クローンとして、フォークを作成したときのメインリポジトリのすべてのブランチが含まれます。
フォーク内および/またはメインリポジトリ内の各ブランチは、作業方法に応じて、いくつかの種類のものに対応できます。各ブランチはプロジェクトのバージョンを参照できますが、修正プログラムや実験的な作業など、さまざまな開発チャネルにも対応できます。
プル要求(GitHubの生態系における)がタスクに対応します。分離された終了したタスクをメインリポジトリに提供するたびに、そのタスクで行われたコミットに対応するプルリクエストを作成します。これらのコミットは、私のフォークまたはブランチからメインリポジトリにプルされます。
Aは、コミットコードの変更のセットです。これはGitの最も興味深い点の1つです。ファイルを転送するのではなく、変更のログを転送します。
ForkはGitHub側のクローンです(すべてをクローンします)。
レポのクローンを作成すると、そのレポのすべての履歴が、そのすべてのブランチとともに取得されます。
理論的にはリモートリポジトリのデフォルトブランチを変更できますが、GitHubリポジトリからのクローンは主にマスターブランチを探します。GitHubクローンが取得する「デフォルト」ブランチを変更することを意味するので、マスターブランチの名前を変更する必要があります。
Github Webサイトからプロジェクトのフォークを作成する場合、上流のプロジェクトからすべてのブランチを取得します。
新しく作成したフォークからローカルPCにクローンを作成するとorigin
、PC のリモートがGithubのフォークのマスターブランチを指すようになります。
これは非常によく説明できます。GitHubに中央リポジトリがあります。パーソナルコンピュータでクローンを作成して変更を加えると、メインリポジトリのこのローカルクローンはフォークと呼ばれます。
ブランチは何か別のもので、fork / repoに含まれています。実際、ブランチは開発のさまざまな段階での作業です。これらは、一連の機能を保存したり、さまざまなユーザーにアクセス権を付与したり、サイトをクライアントにデモンストレーションしたりするために必要に応じて作成されます。
私たちがブランチを使用するときとフォークを使用するときの実際の例を共有したいと思います
私たちのショップにはGitLabがあり、Laravelプロジェクトのパッケージで作業する必要がある場合があります。通常、ブランチを作成し、実際のLaravelプロジェクトで作業するときに、ローカルVM開発環境でテストしていたブランチに変更をプッシュします。
プロジェクトが次の場所にあるとしましょう
https://github.com/yardpenalty/mainproject.git
ブランチの使用:
ブランチが呼び出されたとしましょう It_doesnt_matter
プロダクションに必要な方法でブランチを作成したら、このブランチへの最後のプッシュを行い、マージリクエストを作成して、テストのためにUATに送信します。テストがQCを通過すると、変更がプロダクションにマージされます。
ブランチからのマージがマスタープロジェクトにプッシュされるようになりましたIt_doesnt_matter
で https://github.com/yardpenalty/mainproject.git
パッケージプロジェクトが次の場所にあるとしましょう
https://github.com/yardpenalty/mypackage.git
メインプロジェクトはこのパッケージを本番環境で使用するため、(他の理由の中で)単にこのパッケージにプッシュするだけでは変更を加えることができないことに注意してください。Web開発者がこのパッケージを編集して本番環境に変更を加える必要があるとします。
パッケージを公開しないと変更を確認できないため、単純なブランチも機能しません。
フォークの使用法: ここで、パッケージを少し細工して、フォークを介して製品パッケージのクローンを作成する必要があります。composer.jsonファイルは、ユーザーまたはグループのパスにあるフォークを指すように更新できます。
でフォークを作成します https://github.com/yardpenalty/mypackage.git
それを呼ぶ https://github.com/yardpenalty/yards/mypackage.git
これで、composer.jsonファイルを更新して、「リポジトリ」内のこのパッケージを指すようにすることができます。
{
"type": "github",
"url": "https://github.com/yardpenalty/yard/mypackage.git"
}
]