GitHubでリポジトリをフォークするのはなぜですか?[閉まっている]


110

多くのGitHubアカウントには、他のアカウントから分岐されたリポジトリしかありません。さらに、これを行う人々は通常、フォークされたリポジトリに貢献しません。

切手や貝殻を収集する人のことを聞いたことがありますが、なぜリポジトリを収集したいのでしょうか?個人的には、リポジトリに変更を加えたい場合にのみ、リポジトリをフォークします。


84
プロジェクトの所有者がリポジトリを削除して消えた場合に、安定したバックアップを確保したい
ラチェットフリーク

9
単純にそれがGitHubでプルリクエストが機能するためです(そして、人々が少しフォークハッピーで、時々それを忘れたり、プロジェクトのアイデアを放棄してフォークを取り除くのを忘れたりするため)
ヘイレム

2
私は彼らがコードの「バックアップ」として使用することを理解しているだけのコメントですが、リポジトリを更新しても「フォーク」に影響しないことを忘れています(または知らない) 「再フォーク」するタイミングを知るためのリポジトリに「スター」を付けます。言い換えると、「フォーク」は「スター」とほとんど同じで、古いコードを認識しないと考えています。
ギルヘルムナシメント

1
なぜなら、Githubを持っているだけで、ホットなスタートアップに雇われるのに十分だと聞いたからです。
ガイウス14

1
ここで無理由フォークの害について投稿されzbowling.github.io/blog/2011/11/25/github
gavenkoa

回答:


69

私たちの仕事では、技術的な理由を探す傾向がありますが、私の意見では、主な理由は技術的なものではありません。GitHubヘルプまたは他のGitHubチュートリアルを見ると、GitHubを「実行」するための主要な手順の1つがレポのフォークです。

人々がGitHubを学習および評価しているとき、そこにあるほぼすべてのチュートリアルは、その学習プロセスの一部としてレポをフォークするように指示します。GitHubの主な目的は貢献することであるため、標準のチュートリアルで作業している多くの人は、先にフォークを行う必要がない読み取り専用クローンが必要な場合は気づきません。


42
技術的ではない理由に沿って:誰がレポをフォークしたかを確認するために「フォーク」ボタンを数回クリックしましたが、フォークしたことを確認するだけです。おっと!他の人が同じことをしたかどうかはわかりません。
gdw2

53
@gdw:「ああ、フォーク!」
ベンジャクソン

1
gitとGithubについて最初に学んだとき、ガイドやチュートリアルがあなたのコンピューターでコードのコピーを取得する方法としてそれを提案しているように思えたので、フォークをしました。
rmac

私たちは職場でGitLabを使用しているため、クローンとフォークの違いをよく知っています。また、pull(GitLabのマージ)リクエストを発行したくない場合はフォークする必要はないという意見もあります。
cst1992

3
@Jesse、それは大丈夫ですが、その場合は通常不要です。企業は、元のコードが突然消えないように、依存するコードに対してそれを行う場合があります。ソースからビルドするだけであれば、クローンは簡単です。
カールビーレフェルト

101

あなたの質問で述べたように、元のリポジトリへの書き込みアクセス権がないため、人々はコードを変更したいときにリポジトリをフォークします(リポジトリの所有者によって共同編集者として追加されていない限り)。

フォークされたリポジトリでは、書き込みアクセス権があり、変更をプッシュできます。彼らはプルリクエストを使って元のリポジトリに貢献することさえできます

私は人々がリポジトリをフォークするが、それらを変更しないいくつかの理由があると思います:

  • 彼らはクールに見えるリポジトリをフォークし、単純にフォークするだけで(ワンクリックだけ)簡単にフォークし、後で変更したい(そしておそらくそれを忘れる/そうする時間がなかった)
  • リポジトリをフォークして変更を加え、変更が不要であることを発見し、自分のリポジトリを削除することを忘れる
  • プロジェクトの1つが(おそらくサブモジュールを介して)他のリポジトリに依存し、依存関係として使用されるリポジトリを完全に制御する必要があるため、リポジトリをフォークする可能性があります(元のリポジトリの所有者はgithubからgoogleコードなどに移動することを決定する場合があります) )
  • 彼らは単にコミットをプッシュするのを忘れるかもしれません

5
Githubを使用していない場合は、昔ながらの方法でプロジェクトのローカルクローンコピーを作成し、変更できるようにします。githubでフォークすると、多くのプロジェクトで好まれているプルリクエストにアクセスできます。別のプロジェクトに参加している場合、最終的にパッチを作成し、それらをレビュー用に送信します。
ルドルフオラー

リモートトラッキングブランチをセットアップするための簡単な1ステップのプロセスです。GitHubの外でgitリポジトリに貢献しようとした人は誰でも、それがどれほど退屈であるかを知っています。さらに、元の作者がAFKを行った場合、開発グラフに従って、まだ活発に開発されているフォークを見つけることができます。うまくいけば、SourceForgeと同じようにGitHubが死んだプロジェクトの荒れ地に変身するのを防ぐことができます。
エヴァンプライス14

プロジェクトを分岐したが、変更を加えなかった場合。これは違法と見なされますか?
ジェシー

GitHubの上@Jesse全て公開リポジトリはすべきオープンソースライセンスは全くため、その問題はない(サービスの彼らの規約のthats)持っています。特に変更を加えない場合。
-MarcDefiant

28

考えられる理由の1つは、それらのプロジェクトに依存するコードを実行しており、ビルドプロセスにはgithubから依存関係をプルすることが含まれていることです。フォークを持つことで、破壊的な変更から保護されます。バージョンにタグを付けないプロジェクトの場合、これが最も簡単な方法です。


3
アプリのリリースバージョンの番号または公開バージョンをコミットするように修正できます。
ローマンM.コス

26

Githubの全体のポイントは「ソーシャルコーディング」です。

個人的に、私は次の場合にリポジトリを分岐します:

  • 変更を加えたいです。
  • このプロジェクトは興味深く、将来的に使用したいと思うかもしれませんが、現在使用しているデバイスで後で使用するために保存する簡単な方法はありません。
  • 自分のプロジェクトの出発点として、そのリポジトリ内のコードの一部またはすべてを使用したいと思います。

今、私は人々が切手や貝殻を集めていると聞きましたが、なぜ誰かがリポジトリを集めたいのでしょうか?

何故なの?

個人的な喜びのためにリポジトリをフォークすることから間違った方向に進むことができるものは何もありません(私は考えることができます)。正直なところ、Githubやその他の場所で見られる興味深いプロジェクトのフォルダーは、単にインスピレーションを与える目的で保持しています。これは、オタクだからです。コードを読み取るためにプロジェクトを分岐する必要はないことを理解していますが、実際に編集することもできます。

分岐を開始します。


9
「なぜ?」の+1 セクション。
Llepwryd

「Why not?」の追加2セント。セクション:私の習慣は、機能の作業を終えた後は常に「git push」を行うことです。それは私にとって満足のいくQEDの感覚を持っています(リモートとブランチ名を書き出すときに私は得られません)。そのため、レポを変更する可能性が少しでもある場合は、後でデフォルトの「オリジン」レポを変更する代わりに、フォークすることをお勧めします。
yoniLavi

1
「どうして?」と思う セクションでは、「スター」の仕組みについて説明します
...-TWiStErRob

2
後で見るために保存するために星を付けてみませんか?

2
プロジェクトが面白いときは、星を使用します。残りにも同意します。
ローマンM.コス

1

コードを使用したい場合や、興味のあるプロジェクトの場合は、多くのリポジトリをフォークします。後で戻ってコードをもう一度見たい場合は、自分のコードの下にリストされているかどうかを見つけやすくなります。リポジトリ。Googleで検索したり、名前が何であるかを思い出そうとしたり、「fooについてのレポを再びどこで見たのか」と考えたりする必要はありません。それが私のリポジトリの中である場合、これらのことを思い出すのは簡単です。


リポジトリにスターを付けることで同じ結果が得られることに注意してください。フォークする必要はありません。
ヴァリアーノ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.