Devo conservare i miei repository biforcati GitHub per sempre?


314

Quindi ho modificato il repository di qualcun altro, ho apportato alcune modifiche, inviato una richiesta pull e le mie modifiche sono entrate nel prodotto. Grande!

Ma ... cosa dovrei fare con il mio repository biforcato? C'è un motivo convincente per me per mantenere il mio repository in giro, o dovrei andare avanti ed eliminarlo? Non ho intenzione di apportare contributi aggiuntivi, ma se cambio idea suppongo di poterlo semplicemente ri-fork.

Non sono davvero preoccupato di mantenere un backup. Sono più preoccupato di interrompere i collegamenti, perdere messaggi di commit, ecc.


80
Per favore cancellalo o github finirà gli hash.
Armand,

3
il codice duplicato è malvagio. E questo oltrepassa anche i confini git.
gennaio

7
@stijn - L'ho letto più come "backup" che "duplicato". E non credo di aver mai sentito nessuno dire che il codice di backup è malvagio ...
Beekguk,

3
Cancellalo. Dopotutto, puoi sempre scaricare l'ultimo stato (che è quello da cui vorresti continuare a lavorare comunque) dal repository del progetto.
Rook,

Cosa succede se il repository originale viene eliminato e nessuno ha più forcelle? Come riottenere l'accesso al repository / fork in quel caso?
Kromster,

Risposte:


40

L'eliminazione dei repository biforcuti cancellerà la cronologia dalle richieste pull.

PR con repository sconosciuto

L'eliminazione di un repository biforcuto eliminerà qualsiasi informazione associata al repository. Ciò può influire retroattivamente su qualsiasi riferimento al repository, incluse le richieste pull che sono già state unite. (Vedi Richiesta pull visualizza "repo sconosciuto" dopo l'eliminazione del fork )

I tuoi commenti e commit dovrebbero essere conservati su qualsiasi richiesta pull associata al tuo repository, ma lo farai a tuo rischio.

Tuttavia, l'eliminazione di vecchi rami dopo un'unione è perfettamente sicura.

Mentre l'eliminazione dei repository dovrebbe essere evitata, l'eliminazione di rami inutilizzati è perfettamente accettabile. In effetti, GitHub ti incoraggia a eliminare i vecchi rami .

Riordino dopo richieste pull

In GitHub adoriamo utilizzare le richieste pull tutto il giorno, tutti i giorni. L'unico problema è che ci ritroviamo con molti rami defunti dopo che le richieste pull sono state unite o chiuse. Di tanto in tanto, uno di noi avrebbe eliminato questi rami con uno script, ma abbiamo pensato che sarebbe stato meglio occuparsi di questo passaggio come parte del nostro flusso di lavoro regolare su GitHub.com.

A partire da oggi, dopo che una richiesta pull è stata unita, vedrai un pulsante per eliminare il ramo persistente:

Elimina questo pulsante di diramazione

Se la richiesta pull è stata chiusa senza essere unita, il pulsante avrà un aspetto leggermente diverso per avvisarti dell'eliminazione di commit non uniti:

Elimina ramo con avviso

Ovviamente, puoi eliminare solo i rami nei repository a cui hai accesso push.

Goditi i tuoi repository ordinati!

In alternativa, se davvero non vuoi tenerli in giro, puoi archiviare un repository per indicare che non è più attivamente mantenuto.

Guarda anche


1
Cosa succede esattamente alle richieste pull chiuse non riunite quando si elimina il loro ramo (il secondo caso nell'articolo citato)? I commit saranno ancora disponibili nella richiesta pull, solo senza la loro cronologia o saranno completamente spariti?
refuso

2
@typo Secondo la documentazione di GitHub, " Non è possibile eliminare i rami associati a richieste pull aperte " .
Stevoisiak,

207

Se la tua richiesta pull è stata accettata e non hai apportato altre modifiche che potresti utilizzare personalmente, dovresti eliminarlo.

  1. L'eliminazione non danneggia nulla.
  2. Puoi sempre riporkare se necessario
  3. Riduce i repository inutili nei risultati di ricerca quando le persone sono alla ricerca di qualcosa
  4. Se usi GitHub come una sorta di curriculum per potenziali lavori / contratti, sembra meglio se non hai dozzine di repository biforcati su cui non stai attualmente lavorando. Sembrerai più efficiente.
  5. Aiuta la tua sanità mentale quando non devi sfogliare centinaia di repo inutili.
  6. È meglio per GitHub. :)

50
L'unico aspetto negativo di questo è che la richiesta pull mostrerà "commit unito <commit> in <repo>da unknown repositoryon <data>", il che è un po 'strano.
PLPeeters

18
@PLPeeters, In realtà è un aspetto negativo piuttosto grande.
Pacerier,

4
Suggerisco di usare remove-github-forks"Elimina tutte le forchette che non hanno commit che non si trovano nel repository principale". Funziona come un fascino.
fregante

3
@SteveMoser Potrei sbagliarmi, ma penso che conservi ancora l'elenco "Archivi a cui hai contribuito". Ne avevo uno con cui avevo rimosso ogni connessione e rimaneva ancora lì in qualche modo, ma potrebbe essere stato un colpo di
fortuna

17
Ho preso il rischio e cancellato il repository biforcuto e la mia lista dei contributi non è stata influenzata, quindi posso tranquillamente dire che la cancellazione del repository biforcato non influirà sui tuoi crediti di contributo
Amin Mohamed Ajani

76

Puoi eliminare il fork non appena invii una richiesta pull , indipendentemente dal fatto che sia unita o meno. GitHub memorizza tutti i PR nel repository upstream , il che significa che le modifiche proposte vengono tracciate anche se il fork viene eliminato.

Ciò semplifica la decisione.

Potresti comunque voler mantenere il fork se:

  • Contribuirai di più subito (ad esempio estendi le PR esistenti o apri nuove PR)

Potresti voler eliminare il fork se:

  • Vuoi un portafoglio pulito di progetti a tuo nome

7
"Puoi eliminare il tuo fork non appena invii la tua richiesta pull" Questo è quello che stavo cercando!
Unnawut,

Anch'io, ma la risposta inizia con "Se la tua richiesta pull è stata accettata ..." Hai provato: D
Legends

4
Avvertenza : quando si elimina il fork, il nome del ramo originale viene rimosso da qualsiasi richiesta pull in sospeso. ( Stevoisiak vuole unire 1 commit in Drugoy:masterdaunknown repository )
Stevoisiak

20

Probabilmente lo tar / gzip e metterei un dir archivio, quindi lo cancellerei 3 anni dopo. ;) Onestamente Se non hai intenzione di lavorarci di nuovo per i prossimi mesi e non lo usi da un po ', penso che sarebbe sicuro eliminarlo.


9

Solo per aggiungere alle risposte fornite - GitHub stesso consiglia di eliminare ("riordinare") i repository biforcati dopo che sono stati uniti.

Questo può essere fatto direttamente nella richiesta pull dopo l'unione - vedi questo post sul blog .

Inoltre, a partire da questo momento, non vedo alcun aspetto negativo notato nei commenti:

  • anche dopo aver eliminato il repository biforcato, c'è un messaggio corretto nella richiesta pull (nessun "repository sconosciuto")
  • il repository a cui hai contribuito è ancora elencato nella tua attività di contributo
  • sei ancora elencato nei collaboratori di quel repository

Non consiglierei di cancellarlo prima di unirli come suggerito da @Dennis, poiché potrebbe essere necessario apportare alcune modifiche al codice se richiesto dagli autori.


2
Ho appena eliminato un repository biforcuto e la richiesta pull ora dice unknown repository. Oh bene.
Krassi,

10
Il tuo link va a un articolo che spiega come eliminare un ramo dopo una fusione PR riuscita; questa domanda tuttavia pone sull'eliminazione di un repository . Osserverai il "repository sconosciuto" solo quando elimini il tuo fork del progetto ( repository ).
stakx,

2
La domanda riguarda l'eliminazione di un fork, non di un ramo.
Andy,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.