2013-01-15 15 views
8

Git newb domanda qui. Venendo da SVN, dove posso avere più filiali controllate tutto il posto ("/ www/project1", "/ users/project2", ecc.) Ma tutte vivono nello stesso repository. Ogni ramo ha i propri commit, revisioni, ecc. Voi ragazzi conoscete l'accordo.Repository singolo Git con directory in più posizioni

Esiste un metodo simile a questo in Git, in cui è possibile avere directory/rami in un unico repository distribuito ovunque? Di nuovo, mi dispiace per la nuova domanda. Cercando di ottenere un tallone su questo. Grazie mille per qualsiasi informazione che possa essere fornita qui.

+0

Normalmente, poiché il processo di verifica e fusione è molto veloce, gli sviluppatori che utilizzano Git mantengono tutte le diramazioni e si limitano a passare da una all'altra nella stessa cartella. Il sistema di branch SVN è molto lento e non proprio buono, per questo motivo sono stati mantenuti in una cartella diversa. –

risposta

4

Normalmente, poiché il processo di verifica e fusione è molto veloce, gli sviluppatori che utilizzano Git mantengono tutti i rami e si limitano a passare da una all'altra nella stessa cartella. Il sistema di ramificazione SVN è molto lento, e non proprio buono, è per questo che di solito li tenevano in una cartella diversa.

E 'possibile checkout un ramo in una cartella diversa:

git --work-tree=<path to target> --git-dir="<path from source>" checkout <reference-name> 
# example: 
git --work-tree=. --git-dir="/base-repo/.git" checkout master 

nota, però, che questa nuova cartella non verrà versione. Per mantenerlo di versione, si potrebbe ri-clonare il pronti contro termine in un'altra cartella:

git clone path/to/local/repo/.git 

Si noti che in git, ogni clone è il repo completo (la stessa identica cosa c'è sul vostro server e nella vostra altra cartella) . Ogni clone è completamente indipendente e può spingere/tirare da qualsiasi altro repo.

Spero che questo aiuti!

0

Git è una versione a controllo distribuito. Quindi, puoi avere filiali locali e filiali remote. Per creare filiali locali, utilizzare il comando git branch name dove il nome rappresenta il nome del ramo. Per vedere tutte le filiali locali, è possibile utilizzare il comando git branch. Elencherà tutti i rami e il ramo corrente. Per cambiare tra filiali locali, utilizzare il comando git checkout name dove il nome rappresenta il nome del ramo.

Per inviare il ramo locale al repository remoto, utilizzare il comando git push origin name dove il nome rappresenta il nome del ramo. E per copiare un ramo locale sul tuo computer, usa il comando git checkout -t origin/name.

Problemi correlati