Soll ich meine GitHub-Forked-Repositorys für immer behalten?

314

Also habe ich das Repository einer anderen Person gegabelt, einige Änderungen vorgenommen, eine Pull-Anfrage gesendet und meine Änderungen in das Produkt übernommen. Toll!

Aber ... was soll ich mit meinem Gabeldepot machen? Gibt es einen zwingenden Grund für mich, mein Repository zu behalten, oder sollte ich fortfahren und es löschen? Ich habe nicht vor, zusätzliche Beiträge zu leisten, aber wenn ich es mir anders überlege, gehe ich davon aus, dass ich es immer wieder neu teilen kann.

Ich bin nicht wirklich besorgt, ein Backup zu führen. Ich mache mir mehr Sorgen, dass ich Links unterbreche, Commit-Nachrichten verliere usw.

Brant Bobby
quelle
80
Bitte lösche es oder github geht der Hash aus.
Armand
3
doppelter Code ist böse. Und das geht auch über Git-Grenzen.
Donnerstag,
7
@stijn - Ich habe dies eher als "Backup" als als "Duplikat" gelesen. Und ich glaube, ich habe noch nie jemanden darüber streiten hören, dass Backup-Code böse ist ...
Beekguk
3
Lösche es. Schließlich können Sie immer den letzten Status (von dem Sie ohnehin weiterarbeiten möchten) aus dem Projekt-Repository herunterladen.
Turm
Was passiert, wenn das ursprüngliche Repo gelöscht wird und niemand mehr Gabeln hat? Wie kann in diesem Fall der Zugriff auf das Repo / die Gabel wiederhergestellt werden?
Kromster

Antworten:

40

Durch das Löschen gegabelter Repositorys wird der Verlauf Ihrer Pull-Anforderungen gelöscht.

PR mit unbekanntem Repository

Durch das Löschen eines Forked-Repositorys werden alle mit Ihrem Repository verknüpften Informationen gelöscht. Dies kann sich rückwirkend auf alle Verweise auf Ihr Repository auswirken, einschließlich Pull-Anforderungen, die bereits zusammengeführt wurden. (Siehe Pull Request zeigt "unknown repo" nach dem Löschen des Fork an )

Ihre Kommentare und Commits sollten für alle Pull-Anforderungen, die mit Ihrem Repository verknüpft waren, beibehalten werden. Dies geschieht jedoch auf eigenes Risiko.

Das Löschen alter Zweige nach dem Zusammenführen ist jedoch absolut sicher.

Während das Löschen von Repositorys vermieden werden sollte, ist das Löschen nicht verwendeter Zweige durchaus akzeptabel. Tatsächlich fordert GitHub Sie auf, alte Zweige zu löschen .

Aufräumen nach Pull Requests

Bei GitHub lieben wir es, Pull Requests jeden Tag den ganzen Tag zu nutzen. Das einzige Problem ist, dass wir nach dem Zusammenführen oder Schließen von Pull-Requests viele nicht mehr existierende Zweige haben. Von Zeit zu Zeit löschte einer von uns diese Zweige mit einem Skript, aber wir hielten es für besser, diesen Schritt im Rahmen unseres regulären Workflows auf GitHub.com zu erledigen.

Ab heute wird nach dem Zusammenführen einer Abrufanforderung eine Schaltfläche zum Löschen des verbleibenden Zweigs angezeigt:

Löschen Sie diese Verzweigungsschaltfläche

Wenn die Pull-Anforderung geschlossen wurde, ohne zusammengeführt zu werden, sieht die Schaltfläche etwas anders aus, um Sie vor dem Löschen nicht zusammengeführter Commits zu warnen:

Zweig mit Warnung löschen

Natürlich können Sie nur Zweige in Repositorys löschen, auf die Sie Push-Zugriff haben.

Viel Spaß mit Ihren aufgeräumten Repositories!

Alternativ können Sie ein Repository archivieren, um anzuzeigen, dass es nicht mehr aktiv verwaltet wird , wenn Sie es wirklich nicht behalten möchten .

Siehe auch

Stevoisiak
quelle
1
Was genau passiert mit den nicht zusammengeführten geschlossenen Pull-Anforderungen, wenn Sie deren Zweigstelle löschen (der zweite Fall im zitierten Artikel)? Werden die Commits in der Pull-Anforderung nur noch ohne ihren Verlauf verfügbar sein oder sind sie vollständig verschwunden?
Tippfehler
2
@typo Laut GitHubs Dokumentation können " Sie keine Zweige löschen, die mit offenen Pull-Anforderungen
verknüpft sind
207

Wenn Ihre Pull-Anfrage akzeptiert wurde und Sie keine anderen Änderungen vorgenommen haben, die Sie möglicherweise persönlich verwenden, sollten Sie sie löschen.

  1. Löschen schadet nichts.
  2. Sie können jederzeit nachgeben, wenn dies erforderlich ist
  3. Es reduziert unnötige Repos in den Suchergebnissen, wenn Leute nach etwas suchen
  4. Wenn Sie Ihren GitHub als eine Art Lebenslauf für potenzielle Jobs / Verträge verwenden, ist es besser, wenn Sie nicht über Dutzende von gespaltenen Repos verfügen, an denen Sie gerade nicht arbeiten. Sie werden effizienter erscheinen.
  5. Es hilft Ihrer eigenen Gesundheit, wenn Sie nicht durch Hunderte nutzloser Repos blättern müssen.
  6. Es ist besser für GitHub. :)
tharris
quelle
50
Der einzige Nachteil dabei ist, dass in der Pull-Anforderung "Festschreiben <Festschreiben> <repo>von unknown repository<Datum>" angezeigt wird, was etwas seltsam ist.
PLPeeters
18
@PLPeeters, Eigentlich ist das ein ziemlich großer Nachteil.
Pacerier
4
Ich schlage vor, remove-github-forksmit "Alle Gabeln löschen, bei denen keine Commits vorhanden sind, die nicht im Haupt-Repository enthalten sind." Klappt wunderbar.
Fregante
3
@SteveMoser Ich kann mich irren, aber ich denke, Sie behalten immer noch die Liste "Repositorys, an denen Sie mitgearbeitet haben". Ich hatte eine, zwischen denen ich jede Verbindung entfernt habe, und sie blieb irgendwie bestehen, könnte aber ein Zufall sein: P
Mark Pieszak - Trilon.io
17
Ich bin das Risiko eingegangen und habe das gespaltene Repository gelöscht. Meine Beitragsliste wurde nicht beeinflusst. Ich kann also mit Sicherheit sagen, dass das Löschen des gespaltenen Repos Ihre Beitragsguthaben nicht beeinflusst
Amin Mohamed Ajani
76

Sie können Ihre Abzweigung löschen, sobald Sie eine Pull-Anforderung senden , unabhängig davon, ob sie zusammengeführt wurde oder nicht. GitHub speichert alle PRs im Upstream-Repository , was bedeutet, dass vorgeschlagene Änderungen auch dann nachverfolgt werden, wenn der Fork gelöscht wird.

Das vereinfacht die Entscheidung.

Vielleicht möchten Sie die Gabel trotzdem behalten, wenn:

  • Sie werden gleich mehr beitragen (z. B. bestehende PR erweitern oder neue PRs eröffnen)

Möglicherweise möchten Sie die Gabel löschen, wenn:

  • Sie möchten ein sauberes Portfolio von Projekten unter Ihrem Namen
Dennis
quelle
7
"Sie können Ihre Gabel löschen, sobald Sie Ihre Pull-Anfrage gesendet haben" Dies ist, wonach ich gesucht habe!
Unnawut
Ich auch, aber die Antwort beginnt mit "Wenn Ihre Pull-Anfrage akzeptiert wurde ..." Haben Sie es versucht: D
Legends
4
Warnung : Wenn Sie Ihren Zweig löschen, wird der ursprüngliche Zweigname aus allen ausstehenden Pull-Anforderungen entfernt. ( Stevoisiak möchte 1 Commit in Drugoy:mastervon zusammenführenunknown repository )
Stevoisiak
20

Ich würde es wahrscheinlich tar / gzip und in einem Archivverzeichnis ablegen und es dann 3 Jahre später löschen. ;) Ehrlich gesagt, wenn Sie in den nächsten Monaten nicht mehr daran arbeiten und es eine Weile nicht mehr benutzt haben, ist es meiner Meinung nach sicher, es zu löschen.

Zachary K
quelle
9

Nur um die Antworten zu ergänzen, empfiehlt GitHub selbst, gegabelte Repositorys nach dem Zusammenführen zu löschen ("aufzuräumen").

Dies kann direkt in der Pull-Anfrage nach dem Zusammenführen erfolgen - siehe diesen Blog-Beitrag .

Außerdem sehe ich ab diesem Moment keine Nachteile in den Kommentaren:

  • Auch nach dem Löschen des Forked-Repositorys ist in der Pull-Anforderung eine korrekte Meldung enthalten (kein "unbekanntes Repository").
  • Das Repository, zu dem Sie beigetragen haben, ist weiterhin in Ihrer Beitragsaktivität aufgeführt
  • Sie sind immer noch in den Mitwirkenden dieses Projektarchivs aufgeführt

Ich würde nicht empfehlen, es vor dem Zusammenführen zu löschen, wie von @Dennis vorgeschlagen, da Sie möglicherweise noch einige Änderungen am Code vornehmen müssen, wenn Sie von den Autoren dazu aufgefordert werden.

Marius Balčytis
quelle
2
Ich habe gerade ein Forked-Repository gelöscht und die Pull-Anfrage lautet jetzt unknown repository. Naja.
Krassi
10
Ihr Link führt zu einem Artikel, in dem erläutert wird, wie ein Zweig nach einer erfolgreichen PR-Zusammenführung gelöscht wird . In dieser Frage wird jedoch nach dem Löschen eines Repository gefragt . Sie werden das "unbekannte Repository" nur beobachten, wenn Sie Ihre eigene Projektgabel ( Repository ) löschen .
Stakx
2
Es geht um das Löschen eines Zweigs, nicht eines Zweigs.
Andy