2009-08-11 19 views
5

Mi chiedo se questo è possibile.Forking git privato repo in github.com

Ho un "progetto di avvio" in github (repository privato). Quello che mi piace fare è creare un repo customerA (anche privato), ma dovrebbe essere biforcato dal "progetto iniziale". La mia idea è che il Cliente B, il Cliente C, tutti possano avere il loro repository privato e se correggo un bug che è generico nel "progetto di avvio", posso quindi facilmente rimuovere la correzione di bug a tutti i miei clienti.

Non ho trovato comunque per risolvere questo. Attualmente ho risolto questo problema clonando il progetto privato sampe .. è un problema di git o di github.com?

qualsiasi lavoro in giro?

+0

+1 in @jrockway – memmons

risposta

7

Questo è ciò che i rami sono per. Ogni cliente ottiene un ramo, problema risolto.

Ma ... se il repository di ciascun cliente si trova in un account separato, è sufficiente utilizzare i soliti strumenti git per condividere le modifiche. Per fare un esempio:

$ git clone [email protected]:client/your-project 
$ cd your-project 
$ git remote add original [email protected]:you/your-project 
$ git fetch original 
$ git cherry-pick <change from original> 
$ git merge <whatever> 
$ git rebase <whatever> 
$ git push origin 

ecc

di Github interfaccia utente web è solo una comodità per i casi più comuni. Se hai bisogno di fare qualcosa di non comune, usa solo i soliti strumenti git. A Github non interessa

+0

In un caso come questo, cosa succede se si modifica un file sul master che è personalizzato nel ramo? Se esegui la sincronizzazione dal master, le sovrascrizioni sopra indicate verranno sovrascritte? –

3

Per Git, la clonazione equivale a biforcarsi, o per essere più precisi: Git non sa biforcarsi, è una cosa github. Tecnicamente tutte le forcelle sono semplicemente cloni con diversi proprietari.

Quindi, se clonesti il ​​tuo progetto iniziale per tre clienti, hai effettivamente un singolo repository con più filiali perché ogni fork è un ramo. Forse dovresti esaminare i sottomoduli per il tuo progetto iniziale e includerlo in ogni repository clienti?