2013-03-07 28 views
20

una delle seguenti situazioni di volta in volta ...GitHub garbage raccoglie i commit penzolanti riferiti nelle richieste pull?

I git checkout -b experiment, commettere alcune modifiche sperimentali, e aprire una richiesta di pull. Dopo alcune discussioni, la richiesta di pull viene respinta.

Se dovessi ora di eliminare il ramo a distanza, sarebbe questo rendere il diff inaccessibile ad un certo punto, o fa GitHub garantire che impegna che appaiono nelle richieste di pull non sono garbage collection anche se non appaiono su qualsiasi ramo?

Vorrei eliminare i rami morti, ma solo se così facendo non diminuiremo il valore storico delle richieste di pull rifiutate.

risposta

21

No, non saranno gc perché non sono interamente non referenziali anche se si elimina il ramo.

Github crea un ramo (in realtà, due) per ogni richiesta di pull. Sono in uno spazio dei nomi non predefinito, quindi di solito non li ottengono quando si estrae (o recuperano) dal repository.

Per vedere come questo aspetto, in pratica, fare un git ls-remote <REMOTE>, dove <REMOTE> è il nome di un telecomando (se si tratta di una vostra repo lo sa) o l'URL (non ha bisogno di essere git remote add ed per questo al lavoro). Questo telecomando dovrebbe avere alcune richieste di pull, o non sarai in grado di vedere cosa intendo.

Questo elencherà tutti i riferimenti sul telecomando (tutti i rami e tag), e vedrete alcuni riferimenti come refs/pull/<number>/head e refs/pull/<number>/merge. Quelli si riferiscono al commit più recente nel PR e al commit a cui è stato unito, rispettivamente.

Problemi correlati