2013-01-02 9 views
7

Background: ho una situazione similar to this ma la soluzione non risolve il mio problema. Su GitHub Ho biforcato un fork di un progetto:È sicuro cancellare un fork di un repository GitHub, quando l'originale si riferisce al mio?

Original -> SomeonesFork -> MyFork 

ho fork di SomeonesFork al fine di ripulire alcune modifiche che avevano fatto e inviare una richiesta di pull back per il repo originale. Da allora ho anche inviato richieste di richiamo direttamente all'originale che sono state accettate.

Tuttavia, preferirei che il mio repo fosse un fork diretto dell'originale invece di avere l'intermediario di SomeonesFork. (Rende le cose molto più facili su GitHub.) Ho impostato l'originale come upstream e spinto alla mia fork, ma GitHub continua a dire che è un fork di SomeonesFork.

Se provo a inserire nuovamente l'originale, mi invierò a quello già esistente. Dalla ricerca sembra che GH non consenta più forchette.

Quindi la mia domanda è: è sicuro di cancellare semplicemente la forcella che ho adesso, quindi re-fork l'originale? Ciò causa problemi in git o GitHub ovunque?

+0

Ho eliminato le forcelle con richieste di pull aperte contro di esse senza effetti negativi. La richiesta pull viene "inviata" al proprietario del repository come file di correzione. Basta provare ad attaccare '.patch' alla fine di ogni richiesta di pull o commit URL su github per vedere il contenuto del file di patch in testo normale. – Treffynnon

+0

@Treffynnon non ci sono richieste pull aperte e il mio repository locale attuale è esattamente lo stesso dell'originale al momento. – DisgruntledGoat

+1

Come ho detto che non ho avuto problemi eliminandoli. Cancella regolarmente le forchette nel mio account in cui ho apportato correzioni per altre persone e hanno accettato le mie richieste di estrazione. Mi piace mantenere pulito il mio account. Non esiste un vero collegamento tra due repository di github in quanto entrambi contengono copie dello stesso codice, quindi la natura distribuita di git. – Treffynnon

risposta

12

Git è un sistema distribuito e c'è una copia di tutto il codice in tutti i reposli in cui il codice è stato inserito o inserito. I riferimenti tra repository sono flag di testo minimi che indicano dove proviene un commit di merge. Non esiste un vero collegamento tra loro.

Ho eliminato molte forcelle su github in passato senza effetti negativi. La richiesta pull viene "inviata" al proprietario del repository come file di correzione. Basta provare ad attaccare .patch alla fine di qualsiasi richiesta di pull o di commit URL su github per vedere il contenuto del file di patch in testo normale. Eccone uno che qualcun altro ha richiesto contro un progetto che io mantengo: https://github.com/j4mie/paris/pull/35.patch

Pertanto è autonomo e l'eliminazione della forcella non influisce sulla disponibilità di questa patch al proprietario del repository upstream.

+2

Quindi state dicendo che possiamo cancellare il fork una volta che abbiamo inviato una richiesta di pull, anche ** prima ** è accettato? – Pacerier

Problemi correlati