GitHub:フォークを「独自のプロジェクト」にする


118

私はかなり拡張した素敵なGitHubプロジェクトを見つけました。私は私の変更がうまく機能しているので、良いと思います。しかし、元の作者には、これらの変更を確認して含める時間がないようです。実際、必要な機能と実装された機能が元の作者のビジョンに含まれておらず、単に異なる目標を目指しているだけである可能性さえあります。彼からの返事がなかったのでわかりません。

そうは言っても、私の貢献は私のコミットマップに含まれていないのを見ました。これは、元のリポジトリが私の貢献を受け入れない限り当てはまります。さらに、私の仕事は仕事としてのみ認識され、私と同じビジョンを持つ他の人を惹きつけません。多くの人がこれらの機能を求めているのを見るので、これは私にとってより大きな問題です。

私はまだ元のプロジェクトへの貢献を提供していますが、それらが受け入れられる可能性は低いと思います。ここで、私のフォークを「実際のプロジェクト」にしたいと思います。ある時点で元のプロジェクトと同期する予定ですが、名前を変更して、プロジェクトにも貢献するように人々を動機付けたいと思います。さらに、GitHubがこのプロジェクトが積極的に維持されていることを示してくれると嬉しいです(コミットマップと言えば)。そして最後に、私はそれを適切にリリースしたいと思っています。

これをうまく行うにはどうすればよいですか?私のフォークを本格的なプロジェクトにするにはどうすればよいですか?


私は混乱し、多分物事は2014年以降に変更されたんだけど、私のTightBlogプロジェクトは、左上隅にあるApacheのローラーのフォークとしてリストされている:github.com/gmazza/tightblog、まだ私はすべての問題を完全に信用を得ています、PRなど。ApacheRollerのメインプロジェクトには何も適用されていませんが、私のフォークにのみ適用されています(github.com/gmazza?tab=overview&period=monthly)。フォークをスタンドアロンプ​​ロジェクトにすることで何が得られるのか、私にはわかりません。
Glen Mazza

回答:


75

フォークを切り離してGitHubのスタンドアロンリポジトリに変換するには、GitHubサポートに連絡してください

https://help.github.com/articles/why-are-my-contributions-not-showing-up-on-my-profile/#commit-was-made-in-a-fork


9
また、これを行うことで、スターゲイザー、ウォッチャー、フォークのネットワークが維持されます。ゼロから新しいリポジトリを作成するのとは異なり。
Johnco、2017

1
GitHubサポートで子フォークの親を変更するか、自分のリポジトリにアタッチしたままにするかを選択できることは注目に値します。
gmarmstrong

41

これを行うには、リポジトリ複製する必要があります。短いバージョンは次のとおりです。

  1. GitHubに新しいリポジトリを作成します。
  2. 親から切り離すフォークされたリポジトリのクローンを作成します。
  3. このクローンのすべてのブランチを新しいリポジトリにプッシュします。

リポジトリに同じ名前を付けたい場合は、リポジトリを複製してGitHubで削除し、同じ名前で新しいプロジェクトを作成して、すべてをプッシュできます。
Rory O'Kane 2013

12
GitHubプルリクエストは、プロジェクトのGitHubフォーク全体にしか存在しないようです。したがって、リポジトリを複製すると、新しいリポジトリからプルリクエストを行うことができなくなります。また、古いリポジトリを削除して置き換える場合、GitHubはコードが削除されたと見なし、新しいプルリクエストを作成できないため、既存のプルリクエストはすべて閉じられます。
Rory O'Kane

9
反対投票は、人々に不必要な行動をするように誤解させる可能性があるためです。Olehの答えは代わりに受け入れられるべきです:行く方法はGitHubサポートに連絡することです。私のフォークをスタンドアロンのレポに変換するのに1時間もかかりませんでした。
Georgii Ivankin 2017年

5

これはとても簡単です:

  1. リポジトリをどこかにクローンgit clone git@github.com:USERNAME/REPOSITORY.gitします:(それがクローンされていることを確認してください)
  2. 削除 GitHubのにレポを([設定]> [オプション]> [このリポジトリを削除します)
  3. GitHubで新しい空のリポジトリを作成する
  4. git remote set-url origin git@github.com:USERNAME/NEW_REPOSITORY.git(リポジトリに同じ名前を使用した場合、NEW_REPOSITORY== REPOSITORY👍🏻)
  5. git push
  6. 🙌🏻

(私はsshを使用していますが、httpsを使用している場合、githubのURLは次のようになりますhttps://github.com/USERNAME/REPOSITORY.git


1

まず、ライセンスで許可されているかどうかを確認する必要があります。一般的に言えば、オープンソースはそうすることを強制します。これは、チェーンのないソフトウェアの進化がすべてであるためです。その場合は、新しいリポジトリを作成してください。元の作者にクレジットを付け、プロジェクトを開始することを忘れないでください。


3
それはMITライセンスであり、はい、私はいつものようにクレジットを与える予定です。実際、元の作者が自分のコードを受け入れただけだったら(または、なぜそうしなかったのか教えてくれたら)好んでいたでしょう
Christian

1
元のGitHubフォークではないリポジトリを作成することがライセンスで許可されていない場合、パブリックプロジェクトはオープンソースライセンスでリリースされることになっているため、プロジェクトは最初はパブリックGitHubプロジェクトであってはなりません。 。コードのコピーを禁止するオープンソースライセンスは考えられません。それがオープンソースの要点のようなものです。(もちろん、属性の要件があるかもしれません-しかし、これらはプロジェクトが「適切な」GitHubフォークでなくても満足できます。)
cdhowie

著者は確かにする必要があり、そのプロジェクトのフリーソフトウェアを作るが、彼らは(例えば、ライセンスがない場合)しないと、プロジェクトは非フリーである:stackoverflow.com/a/16934573/6791398
gmarmstrong
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.