2013-04-10 12 views
5

Ho un progetto (privato) in github in cui un team di sviluppatori commette modifiche. Un cliente ha ora chiesto di sviluppare alcune pesanti personalizzazioni sulla propria copia del sistema. Un nuovo team lavorerà a questo progetto, ma non voglio che questo team abbia accesso al repository originale. Così ho creato un nuovo repository su github e l'ho inizializzato con il codice del progetto originale.git mantenendo 2 versioni dello stesso progetto, con diversi utenti su ciascuna

Tuttavia, desidero comunque che il secondo progetto porti gli aggiornamenti al progetto originale. Come posso configurare i repository per soddisfare questa esigenza?

In alternativa, se devo mantenere un singolo progetto, c'è un modo per fare in modo che il nuovo team acceda solo a un ramo specifico?

+0

Hanno bisogno di avere accesso al repository originale in qualche modo. Penso che quello che vuoi dire è che devono avere un accesso di sola lettura. Presumibilmente questo è un deposito privato, altrimenti la domanda non avrebbe alcun senso. –

+0

sì, questo è un repository privato. Non voglio che abbiano accesso al progetto originale, anche di sola lettura, dato che contiene altri dati (alcuni file aggiuntivi, diramazioni) che non sono collegati al codice a cui hanno accesso – periklis

risposta

5

Ho seguito la raccomandazione su this site. Sto ripetendo il processo qui per chiunque sia interessato: Supponiamo che il progetto originale è stato estratto in projectA e il progetto derivato in ProjectB:

La prima volta che ho fatto:

cd path/to/projectB 
git remote add orig_project path/to/projectA 
git fetch orig_project 
git merge orig_project/master -X theirs 
git push 

Ora ogni volta che ho bisogno di sincronizzare le modifiche da projecta ProjectB, lo faccio:

git fetch orig_project 
git merge orig_project/master 
git push 

orig_project può essere un ything. Ho usato -X theirs la prima volta, perché altrimenti tutte le modifiche recuperate sono in conflitto

0

Quello che stai cercando si chiama ramo (e vedo che lo stai usando).

https://help.github.com/articles/branching-out http://learn.github.com/p/branching.html

Una volta che hai i rami non avete bisogno di una nuova base di codice, è possibile utilizzare la forcella (Dite loro a per voi progetto) e in questo modo possono ottenere aggiornamenti

Leggi mroe qui: Definition of "downstream" and "upstream"

+0

E come posso impedire il 2 ° squadra dall'accesso alla base di codice originale? Voglio che abbiano accesso a un singolo ramo del progetto – periklis

1

Estrarre gli altri dati dal repository. Crea un nuovo repository con solo i file e i rami che desideri siano in grado di vedere ed eliminali dal vecchio repository. Quindi give them read-only access to the new repository.

+0

Questa è davvero una valida alternativa, la prenderò in considerazione – periklis

Problemi correlati