2011-05-01 19 views
44

Ho un progetto con un semplice repository git locale, e voglio spostare questo progetto (cartelle ecc.) Su un altro computer e lavorare da lì da ora in poi. Non voglio lasciare nulla sulla vecchia macchina (eccetto ovviamente i miei altri progetti git). Voglio che sia come se lavorassi da sempre alla nuova macchina.Spostare un repository git su un secondo computer?

Posso semplicemente spostare tutti i file su quel computer, o ci sarà un problema con le chiavi? Devo avere la stessa chiave su due macchine? Se semplicemente spostando tutte le cartelle non può essere fatto, cosa dovrei fare? Voglio evitare il fastidio di impostare e imparare a utilizzare un server, poiché questo sembra complicato e non voglio alterare il mio flusso di lavoro.

risposta

52

Per il tuo caso, il modo migliore per farlo è copiare la cartella (copia, scp, cp, robocopy - qualsiasi) sul nuovo computer ed eliminare la vecchia cartella.

Sono completamente in disaccordo con @Pablo Santa Cruz che la clonazione è il paradigma per quello che stai facendo. No non lo è. Stai spostando un repository su un nuovo computer.

Perché non mi piace clone per questo scopo:

  • Si crea filiali remote-tracking per ogni ramo nel repository clonato. Ti stai muovendo e il vecchio repository è in disuso.
  • Eventuali diramazioni remote e altri riferimenti vengono completamente ignorati.
  • Non hai i tuoi ganci se ne avessi e potresti dimenticarti di averli!
  • Non è possibile ottenere commit "persi" ecc utilizzando git reflog o altri mezzi. Potrebbe non essere un grosso problema, specialmente se il repository fungesse da server ma qualcosa di cui essere a conoscenza.

Se si cercano modi per eseguire il backup di un repository git, clone git non sarebbe nelle risposte migliori. Quindi non dovrebbe essere usato per spostare un repository!Ritengo, inoltre, che solo un git clone non può essere una risposta adeguata perché git clone ha la possibilità --mirror, che conserva repo, il che significa che un repo git clone è diverso da git clone --mirror pronti contro termine (oltre ad essere nudo, le differenze sono per lo più quelli che ho citato sopra). Vorrei fare una copia perché I sa quello che ottengo con il repository copiato - lo stesso repository!

Quando considerare git clone: ​​

  1. È più veloce come git fa qualche ottimizzazione, mentre la clonazione
  2. Potrebbe essere diversa la versione git sulla nuova macchina e una copia potrebbe rendere il repo inutilizzabile nell'altra versione (non molto comune al giorno d'oggi). Ma in realtà questo può essere un altro pro per copiare, poiché questo ti informerebbe che il nuovo computer ha una versione git diversa.
+10

Tutti gli altri lo stanno rendendo troppo complicato. Prendi l'intera directory del progetto e copiala nella nuova macchina. Fatto. – kubi

+0

Sembra buono. Ricordo di dover generare una chiave o qualcosa del genere. Funzionerà correttamente se lo copierò e cancellerò il vecchio repository? –

+0

Ho letto che puoi conservare i rami remoti usando qualcosa come '\ *: \ *' ma non sono sicuro della sintassi esatta e questa è una cagna di una parola chiave google - @manojlds sai qualcosa a riguardo o potresti elaborare? Mi sembra che se i rami fossero preservati, risolverebbe la maggior parte dei problemi importanti (ad eccezione degli ami) –

-1

Invece di copiare, ti consiglio di aggiungere il repository al numero clone. La clonazione è il paradigma corretto per ciò che stai cercando di realizzare. Il progetto clonato conterrà anche tutti i metadati git e le relative informazioni.

Sulla macchina di destinazione:

$ git clone git://your-repo/proj proj 

Invece di utilizzare git:// si potrebbe anche usare ssh:// o http:// protocolli per accedere al repository. Consultare il manuale git per ulteriori informazioni.

+0

Confermare e spingere il repository sul computer 1, clonare sul computer 2. Spingere sul computer 2. Accendere il computer 1. RTM. – RyanScottLewis

+1

@coolryguy: questo presuppone che ci sia un terzo repository "centrale". – KingCrunch

+0

Non ero chiaro - non sto copiando, mi sto muovendo. Non voglio che occupi spazio sul computer originale. Devo ancora fare questo, e quindi eliminare la vecchia cartella? –

-1

Perché ogni clone è anche un repository stesso, basta clonare il primo sul secondo computer.

2

Sì, è sufficiente copiare i dati sull'altra macchina. Usare git clone è quasi la stessa cosa, ma installerà il computer da cui si sta clonando come origine remota, che potrebbe non essere quello che si desidera.

+0

'git remote rm origin' – KingCrunch

+0

Giusto, non è quello che voglio. Voglio spostare il progetto senza lasciare traccia sulla macchina originale. Ma lo sposterò semplicemente rovinando le mie chiavi? Avrò bisogno di installarne di nuovi sulla nuova macchina? –

Problemi correlati