なぜ「GitHubでフォークしてください」?[閉まっている]


50

GitHubの仕組みを理解していますが、混乱していることの1つは、ほとんどすべてのOSSプロジェクトが最近、ホームページに「GitHubでフォーク」リンクを持っている理由です。例えば、

http://jqtjs.com/http://www.daviddurman.com/flexi-color-picker/など。

これはなぜそんなに一般的ですか?彼らは、コードの検証を望んでいる/必要としているのか、どうすればいいのかわからないかもしれないセキュリティ/パフォーマンスの改善をチェックしているのか?

これが共同プロジェクトであることを示すことを意図していますか?改善を追加しても大丈夫ですか?

彼らはGitHubで働いていますか、それともサービスを宣伝したいですか?奇妙なことに、最近「Bitbucketの Forkプロジェクト」のロゴを見たことがないと思います。

そのロゴに対する私の最初の反応は、プロジェクトをおそらく有用なものと統合するために変更(分岐)する必要があること、またはフラグメント化されたコードベースを奨励し、全員がプロジェクトの独自の分岐を作成することを奨励していることです。しかし、私はそれが意図ではないと思います。


23
「このプロジェクトに貢献したり、ソースを確認したい場合は、githubのリポジトリをご覧ください」と書くよりも簡単だからです。;-)
nietonfir

1
私は誰も言及していないことに少し驚いています...それは何ですか、しゃれですか?Innuendo?しかし、その特定の表現はビットバケツでは機能しません。彼らのサイトはgithubよりもプロフェッショナルな雰囲気を醸し出しています。「それが私が最初の読書であなたの質問を理解した方法だからです-「なぜbitbucketにこれらがないのですか?」
イズカタ

2
これらはソーシャルウィジェットであり、SEの質問/回答の「共有」リンクで表示されるウィジェットとよく似ています。Google+、Facebook、Twitterのウィジェットを取得できます。これらはサイト設計者がすぐに使用できるため、簡単に統合できます。たとえばBitbucketにはそのようなものはないと思うので、注意する必要はありません。プロジェクトに独自の自家製の「fork me」ウィジェットがある場合、おそらく他のプロジェクトのようには見えないでしょう。
リュックダントン

この質問は、オープンソースのソフトウェア文化に関するものであるため、私はこの質問をトピック外として終了することに投票しています。現在、オープンソースプロジェクトの作成、配布、マーケティング、および収益化のためにコミュニティがどのように連携するかについての質問は、Open Source Stack Exchangeで話題になっています。
トーマスオーエンズ

回答:


20

問題のフォスターコラボレーションの側面は別として、ビジネスの観点からは、GitHubのトラフィック、ユーザーベース、および市場での地位を強化します。そのため、それに関連するビジネス戦略も少しあります。

個人的には、GitHubがオープンソースコミュニティに価値のあるサービスを提供するため、これは気にしません。


23
GitHubの観点からの答えはなぜですか?GitHubのトラフィック、ユーザーベース、市場での地位を強化するために、人々はそのロゴをサイトに配置していません。それは副作用かもしれませんが、それは目的ではありません。これはGitHubの「ビジネス戦略」ですか?GitHubは、このロゴをOSSサイトに配置することすら責任を負いません(OSSサイトのメンテナーはそうです)。
ベン・リー

3
@Ben Leeあなたのコメントはよく撮られています。しかし、私は1つの目的ではなく、多くの目的があると断言します。目的はコラボレーションを促進することであり、GitHubもビジネスであること(この業界のマーケットリーダーであると主張できる)、およびFork Meのもう1つの目的も認めなければならないという見解を否定しませんでした。 GitHubは戦略的に有利です。これは任意であると認められましたが、それでも効果的です。これにより、GitHubがインターネット上でより目立つようになり、インターネットビジネス戦略の重要な部分となります。
AsymLabs

2
@BenLeeようドミトリは指摘し、GitHubのは、このページがあります:github.com/blog/273-github-ribbonsんのBitbucketやその他のサービスは、同様のものを持っていますか?
NoBugs

75

これが共同プロジェクトであることを示すことを意図していますか?改善を追加しても大丈夫ですか?

はい:リポジトリで直接コミットをプッシュする権利はありません。
しかし、あなたがする可能性が持っている彼らのレポフォークことになり、あなたのレポをし、準備し、そこからコミットプッシュプル要求を

フォーク


2
フォークしてからGithubでリクエストをプルできることを知っています。私の質問は、「Githubでフォークしてください」と言う理由です。
NoBugs

6
@NoBugsを使用して、プロジェクトに貢献する方法を知ってください。
VonC

19
ここでの焦点は、Githubよりも「fork me」にあると思います。これはおそらく、Githubがこの種の最も人気のあるサイトだからでしょう。Bitbucketをフォークした場合、誰も大きな問題を抱えているとは思いません。とにかく良い質問です。
JensG

gitorious.orgをフォークしても、誰も大きな問題を抱えているとは思いません。それだけではほとんど誰もいないことを...
マイケルPaulukonis

37

「Fit me on Github」バッジは、プロジェクトに貢献する権利を与えられたプロジェクトであること、またはプロジェクトの開始点としてそれを使用することを示すためのものです。

それは、「それは共同プロジェクトであり、改善を追加することを歓迎していること」を示しています。

元のソースに影響を与えることなく、コードをいじったり、同じプロジェクトのスピンオフを行うことができます。

https://help.github.com/articles/fork-a-repo

同じ原則が他のすべてのgitホストにも適用されます。

プロジェクトを分岐する権利を与える主なポイント(他の多くのことの中で)は、

  • コラボレーションの促進-プロジェクトの改善に人々が協力できるようにすること。
  • 知識を追加-人々があなたのコードを勉強できるようにします。

あなたが遭遇するかもしれないプロジェクトのいくつかは、彼ら自身の私的なニーズのためにGithubスタッフによってかもしれません。彼らはgithubを宣伝したくありません。githubでプロジェクトを見つけることができます:https : //github.com/github

他のホストからバッジが表示されない理由は、Githubが最も人気のあるgitホスティングおよびコラボレーションプラットフォームであるためです。


まさに。DVCSワークフローを使用すると、他の人に影響を与えずに結果を公開できます。分岐とは、共有したいものを共有する許可を求める必要がないことを意味します。インターネットがあなたの変更を好むなら、彼らはそれを吸収します。
ウォーレンP 14年

15

お気に入りのテキストエディタを使用し、しばらくしてから、実装する機能(非ブロッキングの[ファイルの保存]オプションなど)が本当に気に入ったと思ったとします。

11回目は自分で1つ書くことにしたと考えた後。このプロジェクトのgithubページを見つけたら、2つのオプションがあります。

  1. ソースコードをダウンロードし、修正して、自分で保管してください。
  2. githubでプロジェクトをフォークし、フォークで作業します。

2番目のオプションを選択した場合、機能を適切に作成し、十分にテストした後、プルリクエストを準備すれば、プロジェクト全体が恩恵を受けます。

ただし、最初のパスを選択した場合、変更を忘れてしまい、それ以外の誰も利益を得られない可能性が非常に高くなります(はい、手動でコードを共有できますが、他のコーダーはそれを簡単に忘れることができます。他の人の仕事でもっと社交的になるように強制しています)。

「githubでフォークしてください」プロジェクトの所有者は、Fork on github代わりにコードをダウンロードしてホームディレクトリに公開することを選択したことを確認したいだけです。


7

これがオープンソースプロジェクトであることを示すためだけにあり、必要に応じて、理由を問わずフォークします。また、GitHubのこのブログ投稿(https://github.com/blog/273-github-ribbons)もチェックしてください。

更新:個人的に、これらのGitHubリボンを追加して、人々がGitHubで見つけてプロジェクトにスターを付けられるようにします;)


6

これは、フォークが安価なgithubにいることを意味し、ソフトウェアとコミュニティを改善するための貢献を奨励したいと考えています。


5

Githubは、ソースコードのホスティングだけでなく、共同作業を含むようにユーザーベースを拡大しようとしています。したがって、フォークをプッシュし、プルリクエストメソッドを送信します。パッチを作成してメールで送信することは、プログラマー以外のほとんどの人にとって魅力的ではありません。ここでは、プッシュ許可はあまり重要ではありません。最終的には、ツールと開発ワークフローに関するかなりの知識を持つgit(またはmercurial、darcsなど)ユーザーのほとんどが、何らかの形でパッチを添付したメールを送信できるからです。

また、Githubはコードホスティングよりもソーシャルネットワーキングに関するものです。プロフィール、リポジトリ、変更は、ツイートや「+1」と同様に、ソフトウェア開発者としてのアイデンティティを構成します。これらのすべてのリボンとボタンは、プロジェクトを所属する人のプロファイルへのパスである自己回避の手段として使用されます。最近、まともなGithubプロファイルを持つことが開発者に最初に期待されています。私は何でも水銀を使用していますが、これらの理由からhg-git経由でGithubにプッシュします。

最終的に、その「Githubでフォークしてください」リボンは、「Tweet this Article」または「Share this Thing on G +」ボタンとは目的がわずかに異なります。(リポジトリのフォークにリポジトリのフォークがあるということは、「私はこのことのユーザーです」という意味です。LinusTorvaldsはプルリクエストを受け入れませんが、githubには何千ものLinuxのフォークがあります。)


2

「パッチは大歓迎です」と言う別の方法です。

願いや機能のリクエストを送信する代わりに、元の作者がプルリクエストをレビュー、検証、マージするプルリクエストを送信できます。

歴史的にフォークは、元のプロジェクトの管理と競合するグループによって行われる敵対的なアクションです。たとえば、政治的な理由から、低速の壊れたJavaベースのプラグインを好むため、SunのOpenOfficeは高速C / C ++ SVGプラグインを拒否していました。

ほとんどの場合、フォークは悪いものであり、people望のある人々またはそれを行う計画を持っている利己的な企業の人々によって運ばれ、元のコミュニティと共有されておらず、それと整合していません(例:Canonical)、この例はlibav / avconvです(これはFFMPEGのフォークです)、そのような場合、元のコミュニティはより高い品質とセキュリティを備えており、コミュニティの計画に沿ったパッチを歓迎します。

ダン・ウォルシュはフォークの古い定義に注目し

私は長い間オープンソースを使ってきましたが、「フォーク」の定義は古いかもしれません。「フォーク」は、あるグループが上流プロジェクトのバージョンを使用して貢献させ、「元の」バージョンを無視するために、あるグループが取った敵対的なアクションだと思います。たとえば、LibreOfficeはOpenOfficeから分岐するか、XorgからXfree86に分岐します。

それから彼はそれをgithubのフォークと比較しました

最近、GitHubは意味を変えました。ソフトウェアリポジトリがGitHubまたは同様のプラットフォームに存在する場合、貢献したい人は誰でも「フォーク」ボタンを押して、パッチのビルドを開始する必要があります。この記事の執筆時点では、GitHubのDockerには9,860のフォークがあり、そのうちの1つがフォークです。ただし、この定義では、パッチを含むディストリビューションに含まれるすべてのパッケージはフォークです。Red HatはLinuxカーネルを出荷していますが、これがフォークと呼ばれることは聞いていません。しかし、パッチをフォークで提供するアップストリームプロジェクトを検討している場合、「フォーク」と見なされます。


1

これが共同作業であると言っているすべての応答は、「GitHibでクローンを作成する」または「GitHubから.zipをダウンロードする」と言うのはなぜですか?

GitHubでは、フォークの数のカウントを確認できます。しかし、私の知る限り、クローンまたはzipダウンロードの数のカウントではありません。

ですから、部分的にはコラボレーションを促進すること、一部は人々があなたのコードを使用しているというフィードバックと検証を得ることだと思います。

PS私はGitHubにかなり慣れていないので、もしこれが完全に間違っているなら、親切に教えてください。


「それは、プルリクエストによる分散バージョン管理の仕組みです。もちろん、まずリポジトリをフォークし、次にフォークにコミットし、共有する価値のあるものを作成したらプルリクエストを発行する必要があります」元のプロジェクトで」
ウォーレンP 14年

1
私は本当にgitを「取得」しないことを認めなければなりません。zipファイルを複製または取得するだけでなく、変更を加える場合は、必要なVCSをセットアップしてください。まれに、すべての人に有益な有益な変更を加える場合、電子メールに頼るか、フォークを行うことができます。
user949300 14年

この答えは矛盾しています。あなたは彼らがコラボレーションを促進しようとしていることを正しく示唆しています。そのようなリンクのポイントは、人々にプロジェクトをダウンロードする場所を与えることではなく、プロジェクトの開発に関与させることです。彼らはzipをダウンロードしたり、自分用のコピーが必要な場合はクローンを作成できますが、コピーに上流のプロジェクトに貢献するためのパスを確立したい場合は、上流があなたの貢献を引き出すことができるフォークを持つことによって行われますから。
カレブ

@ user949300、まだ使用git clone https://github.com/$NAME_OF_GITHUB_USER/$NAME_OF_REPOSITORY.gitしてgit format-patch masterからメールなどで送信できます
セバスチャンゴデレット14

0

githubでforkすると、twitterでフォローするのと同じように簡単に言うことができます。私は自分の視点から開発の世界に少し社会化をもたらします。また、オープンソースであり、修正が可能であることを明らかにします。プロジェクトのウェブサイト


あの いいえ。そのために、レポには「スター」と「ウォッチ」、ユーザーには「フォロー」があります。フォークのポイントは、特定の種類のアクションを奨励することです-寄付を上流に送るだけでなく、それをソーシャルにします。
カレブ

0

あなたはおそらく最も単純な答えをとるのが最善でしょう:彼らはあなたがコードがGitHubで自由に利用可能であることを知ってほしい。あなたの仮説は少し考え直されていると思います。


これは、実際に理にかなっている最も簡単な答えです。
ウォーランド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.