Eine Github-Gabel lösen, ohne sie zu löschen

79

Ich möchte eine GitHub-Gabel "entzweigen", ohne sie zu löschen + neu zu erstellen. Ist das möglich?

Mein Grund ist, dass mein Projekt jetzt eine völlig andere Verwendung hat als die Quelle der Gabelung und es keinen Sinn macht, die Anzahl der Commits im Voraus oder den Pull-Request-Button (oder zumindest mit einer solchen Bedeutung) anzuzeigen. Im Nachhinein denke ich, ich hätte nur git clonedas Original gemacht, anstatt eine Gabel zu machen.

Ich möchte meine Gabel nicht löschen, um die Probleme + den Verlauf der gestellten Pull-Anfragen beizubehalten.

Ich bin froh, die Geschichte der Commits zu behalten, es ist nur die Entfernung des Gabelstatus, nach dem ich strebe.

Michal Charemza
quelle
Mich würde interessieren, was die Lösung für ein allgemeines Git-Repository ist, und nicht speziell für GitHub.
Arj
1
@Arj Ich hatte den Eindruck, dass eine Gabel ein GitHub-spezifisches Konzept ist, daher vermute ich, dass es keine Lösung gibt, weil es kein Problem gibt!
Michal Charemza
Ich wusste nicht, dass es GitHub-spezifisch ist, danke! Ich verwende jedoch Atlassian Stash, das auch Gabeln zulässt, weshalb ich davon ausgegangen sein muss, dass es generisch ist. Ich kann in ihren Foren herumgraben.
Arj
2
Mögliches Duplikat von GitHub: Machen Sie Fork zu einem "eigenen Projekt"
Ioannis Filippidis

Antworten:

23

Ich erinnere mich, dass ich vor fast einem Jahr auf einer der Hilfeseiten von GitHub darüber gelesen habe. Sie erwähnten, sich an die GitHub-Mitarbeiter zu wenden, um Ihre Situation zu erläutern. Das Personal wird das Notwendige tun.


BEARBEITEN

Nach dem Durchsuchen der GitHub-Seitenliste sehe ich, dass ich bei der eigentlichen Aufgabe etwas abwesend war. Die Seite, an die ich mich erinnerte, war das Übertragen eines Repositorys . speziell:

Wenn das übertragene Repository über Gabeln verfügt , werden diese Gabeln nach Abschluss der Übertragung dem neuen Repository zugeordnet. Beachten Sie, dass Benutzer, die Ihr Repository gegabelt haben, ihre Remote-URLs aktualisieren müssen, um auf das neue Git-Repository zu verweisen, um weiterhin Pull-Anforderungen öffnen zu können.


Es lohnt sich immer noch, die Mitarbeiter mit Ihrem speziellen Problem zu kontaktieren und sie zu bitten, Ihre Gabel vom Netzwerk zu trennen.

hjpotter92
quelle
10
Ich habe die Mitarbeiter unter github.com/contact kontaktiert , meine Situation erklärt und sie haben sie jetzt aufgehoben. Oder um ihren Begriff "in ein eigenes Gabelnetzwerk extrahiert" zu verwenden. Vielen Dank!
Michal Charemza
65

Na, na. Github ist weitaus mächtiger als Sie denken.

Zweifellos gibt es keine andere Möglichkeit, als eine bloße Kopie aller Codes zu erstellen. Der Kopiervorgang kann jedoch von Github selbst durchgeführt werden . Kein Problem, den Code mit unserer eigenen Bandbreite zu spiegeln.

Schritt für Schritt:

  • Klicken Sie oben rechts auf das "+" und wählen Sie "Repository importieren".
  • Fügen Sie die alte Repo-URL ein (wie https://github.com/user/repo ) und geben Sie einen neuen Namen ein.
  • Klicken Sie auf "Import starten".

Erledigt. Github gibt Ihnen sogar eine E-Mail-Benachrichtigung, wenn das Kopieren und Einfügen abgeschlossen ist.

Getestet, um gegen mein eigenes Projekt zu arbeiten. Gutes Feature, nicht wahr?

ttimasdf
quelle
3
Wird dies auch Probleme aufwerfen?
Chris Anderson
1
@ ChrisAnderson Ich habe es nicht versucht, aber ich denke nicht. Da es jede gültige Git-URL akzeptiert, macht es fast git clone --barealles.
ttimasdf
2
+1 Dies sollte die akzeptierte Antwort sein. Sie müssen also nur Ihr gegabeltes Repository umbenennen und in ein neues Repository mit dem ursprünglichen Namen importieren.
qsp
46

Diese Methode erstellt ein neues "ungegabeltes" Repository, während alles andere (Commit-Verlauf, Zweige und Tags) beibehalten wird.

So "lösen" Sie ein Projekt in vier einfachen Schritten:

  1. git clone --bare https://github.com/{username}/{repository}
  2. Löschen Sie das ursprüngliche Repository in https://github.com/{username}/{repository}/ settings.
  3. Erstellen Sie ein neues Repository mit dem Namen {repository}unter https://github.com/new .
  4. cd {repository}.git und git push --mirror https://github.com/{username}/{repository}

Und fertig!

Tiago A.
quelle
Es sollte auch Punkt "2.5. Neues Repository mit altem Namen erstellen." - sonst Push sagtremote: Repository not found.
BartBiczBoży
4
Glücklicherweise erwähnte OP "Ich möchte meine Gabel nicht löschen, um die Probleme + den Verlauf der gestellten Pull-Anfragen beizubehalten."
Arcesilas
Die Pull-Anforderung wird nicht beibehalten. Gibt es eine Möglichkeit, Pull-Anfragen ohne Unterbrechung aufrechtzuerhalten?
user1858796
Sie müssten auch alle Geheimnisse neu erstellen. Github.com {Benutzername} / {Repository} / Einstellungen / Geheimnisse
Rektalogik
21

In der offiziellen Github-Dokumentation habe ich Folgendes gefunden:

Wenden Sie sich an den GitHub-Support, um die Gabel zu entfernen und sie in ein eigenständiges Repository auf GitHub umzuwandeln . Wenn der Fork über eigene Gabeln verfügt, teilen Sie dem Support mit, ob die Gabeln mit Ihrem Repository in ein neues Netzwerk verschoben werden sollen oder im aktuellen Netzwerk verbleiben sollen. Weitere Informationen finden Sie unter "Informationen zu Gabeln ".

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

dpoetzsch
quelle