GitHub: Gabel zu einem "eigenen Projekt" machen

118

Ich habe ein schönes GitHub-Projekt gefunden, das ich sehr erweitert habe. Ich glaube, meine Änderungen sind gut, weil sie funktionieren. Es scheint jedoch, dass der ursprüngliche Autor nicht die Zeit hat, diese Änderungen zu überprüfen und einzubeziehen. Es ist sogar möglich, dass die Funktionen, die ich benötige und implementiere, nicht in der Vision des ursprünglichen Autors enthalten sind und wir einfach unterschiedliche Ziele verfolgen. Ich weiß es nicht, da ich nie Antworten von ihm bekommen habe.

Das heißt, ich habe gesehen, dass meine Beiträge nicht in meiner Commit-Map gezählt werden. Dies ist der Fall, solange das ursprüngliche Repository meine Beiträge nicht akzeptiert. Außerdem wird meine Arbeit nur als Arbeit anerkannt und zieht keine anderen Menschen mit der gleichen Vision an wie ich. Dies ist das größere Problem für mich, da ich viele Leute sehe, die nach diesen Funktionen fragen.

Ich biete immer noch meine Beiträge zum ursprünglichen Projekt an, aber ich sehe, dass es unwahrscheinlich ist, dass sie jemals akzeptiert werden. Jetzt möchte ich meine Gabel zu einem "echten Projekt" machen. Während ich vorhabe, zu bestimmten Zeitpunkten mit dem ursprünglichen Projekt zu synchronisieren, möchte ich es umbenennen und die Leute motivieren, auch zu meinem Projekt beizutragen. Außerdem würde ich mich freuen, wenn GitHub zeigen würde, dass dieses Projekt aktiv gepflegt wird (Apropos Commit Map). Und schließlich würde ich gerne richtige Veröffentlichungen davon machen.

Wie kann ich das schaffen und meine Gabel zu einem vollwertigen Projekt machen?

Christian
quelle
Ich bin verwirrt, vielleicht haben sich die Dinge seit 2014 geändert, aber mein TightBlog-Projekt ist als Gabelung von Apache Roller in der oberen linken Ecke aufgeführt: github.com/gmazza/tightblog , aber ich bekomme die volle Anerkennung für alle meine Probleme , PRs usw., obwohl keine Arbeit auf das Apache Roller-Hauptprojekt angewendet wird, sondern nur auf meine Gabel: ( github.com/gmazza?tab=overview&period=monthly ). Ich bin mir nicht sicher, was man davon profitiert, wenn man eine Gabel zu einem eigenständigen Projekt macht.
Glen Mazza

Antworten:

75

Wenden Sie sich an den GitHub-Support, um die Gabel zu entfernen und sie in ein eigenständiges Repository auf GitHub umzuwandeln .

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

Oleh Prypin
quelle
9
Auf diese Weise bleiben auch Sterngucker, Beobachter und das Netzwerk der Gabeln erhalten. Im Gegensatz zum Erstellen eines neuen Repos von Grund auf neu.
Johnco
1
Es ist erwähnenswert, dass der GitHub-Support mir die Wahl gab, untergeordnete Gabeln zu reparieren oder sie an mein eigenes Repository anzuhängen.
gmarmstrong
41

Dazu müssen Sie das Repository duplizieren . Die Kurzversion ist:

  1. Erstellen Sie ein neues Repository auf GitHub.
  2. Klonen Sie das gegabelte Repository, das Sie von seinem übergeordneten Repository trennen möchten.
  3. Verschieben Sie alle Zweige in diesem Klon in Ihr neues Repository.
cdhowie
quelle
Wenn Sie möchten, dass Ihr Repository immer noch denselben Namen hat, können Sie wahrscheinlich Ihr Repo klonen, es auf GitHub löschen, ein neues Projekt mit demselben Namen erstellen und alles pushen.
Rory O'Kane
12
Es scheint, dass GitHub-Pull-Anforderungen nur über GitHub-Gabeln eines Projekts erfolgen können. Wenn Sie also Ihr Repository duplizieren, können Sie keine Pull-Anforderungen aus dem neuen Repository stellen. Wenn Sie Ihr altes Repository löschen und ersetzen, werden wahrscheinlich alle vorhandenen Pull-Anforderungen geschlossen, da GitHub den Code für gelöscht hält und Sie keine neuen Pull-Anforderungen stellen können.
Rory O'Kane
9
Downvoting, da dies Menschen irreführen kann, unnötige Maßnahmen zu ergreifen. Olehs Antwort sollte stattdessen akzeptiert werden: Der Weg ist, sich an den GitHub-Support zu wenden. Es dauerte weniger als eine Stunde, um meine Gabel in ein eigenständiges Repo umzuwandeln.
Georgii Ivankin
5

Das ist super einfach:

  1. Klonen Sie das Repo irgendwo: git clone [email protected]:USERNAME/REPOSITORY.git(Stellen Sie sicher, dass Sie es geklont haben)
  2. Löschen Sie das Repo in GitHub (Einstellungen> Optionen> Dieses Repository löschen)
  3. Erstellen Sie ein neues leeres Repo in GitHub
  4. git remote set-url origin [email protected]:USERNAME/NEW_REPOSITORY.git(Wenn Sie den gleichen Namen für das Repo verwendet haben, dann NEW_REPOSITORY== REPOSITORY👍🏻)
  5. git push
  6. 🙌🏻

(Ich benutze ssh, aber wenn Sie https verwenden, sehen Ihre Github-URLs so aus https://github.com/USERNAME/REPOSITORY.git)

Gerbus
quelle
1

Zuerst sollten Sie prüfen, ob die Lizenz dies zulässt. Im Allgemeinen erzwingt Open Source dies, da es um die Softwareentwicklung ohne Ketten geht. Wenn ja, dann erstelle einfach ein neues Repo. Vergessen Sie nicht, die ursprünglichen Autoren anzugeben und Ihr Projekt zu starten.

Jethroo
quelle
3
Es ist MIT-lizenziert und ja, ich plane, wie gewohnt Credits zu vergeben. Tatsächlich hätte ich es vorgezogen, wenn der ursprüngliche Autor nur meinen Code akzeptiert hätte (oder mir gesagt hätte, warum er es nicht tut)
Christian
1
Wenn Sie mit der Lizenz kein Repository erstellen können, das keine GitHub-Verzweigung des Originals ist, sollte das Projekt in erster Linie kein öffentliches GitHub-Projekt sein, da öffentliche Projekte unter einer Open-Source-Lizenz veröffentlicht werden sollen . Ich kann mir keine Open-Source-Lizenz vorstellen, die das Erstellen von Kopien von Code verbietet. Das ist der springende Punkt bei Open Source. (Natürlich kann es Attributionsanforderungen geben - aber diese können erfüllt werden, ohne dass ein Projekt eine "richtige" GitHub-Gabel ist.)
cdhowie
Der Autor sollte auf jeden Fall seine
projektfreie