1. ホーム
  2. git

[解決済み] Gitフォークは、実はGitクローンなのか?

2022-03-20 01:44:14

質問

Gitでコードをフォークしているという話をよく聞きます。Git "fork" は、Git "clone" に加えて、将来のマージを見送るという(無意味な)心理的意志があるように、怪しく聞こえます。 Gitにforkコマンドはありませんよね?

GitHubは、フォークの対応をホッチキスで留めることで、フォークの現実味を高めています。つまり、フォークボタンを押すと、後でプルリクエストボタンを押したときに、システムが賢くなってオーナーにメールを送ってくれるのです。したがって、リポジトリの所有権とパーミッションのまわりで、ちょっとしたダンスをしているようなものなのです。

はい/いいえ?GitHubがGitをこの方向に拡張することに何か不満がありますか?あるいは、Gitがこの機能を吸収するという噂はありますか?

解決方法は?

フォーク は、GitHub のコンテキストでは、Git を拡張するものではありません。
サーバー側でクローンを作成することができるのみです。

GitHub リポジトリをローカルのワークステーションでクローンした場合、明示的に貢献者として宣言しない限り、上流のリポジトリにコントリビュートすることはできません。これは、あなたのクローンがそのプロジェクトの別のインスタンスであるためです。もし、そのプロジェクトに貢献したいのであれば、次のようにフォークを使用して行うことができます。

  • そのGitHubリポジトリを自分のGitHubアカウントでクローンする(つまり、そのGitHubリポジトリの fork"部分 サーバー側でクローンを作成します)
  • そのGitHubリポジトリにコミットする(自分のGitHubアカウントにあるので、そこにプッシュする権利はある)。
  • 面白い貢献があれば、元の GitHub リポジトリにシグナルを送り返します (これは プルリクエスト部分 自分のGitHubリポジトリで行った変更によって)

Check also " GitHub コラボレーション・ワークフロー "。

元のリポジトリ(アップストリームとも呼ばれる)とのリンクを維持したい場合、その元のリポジトリを参照するリモートを追加する必要があります。
参照:" GitHub における origin と upstream の違いは何ですか? "

また、Git 2.20(2018年第4四半期)以降では、forkからの取得がより効率的になりました。 デルタアイランド .