2011-02-03 14 views
5

Ho un progetto su cui sto lavorando e ho la seguente configurazione: un server con i miei repository git, un pc desktop e un laptop.sincronizza i file senza eseguire il commit?

A volte lavoro sul mio progetto sul desktop, a volte sul mio portatile.

Come posso sincronizzare i miei file tra il desktop pc e il laptop senza commutare le modifiche al server?

Grazie

+0

Basta usare un ramo. – ismail

+1

La frase "un server con i miei repository git, un pc desktop e un laptop" è davvero strana. Presumibilmente se stai lavorando su laptop e desktop, allora hanno anche repository. Smetti di pensare che i repository sul server siano diversi dal repository sul desktop o sul pc. Sono tutti uguali. –

+0

@ william Non sono d'accordo. Se qualcuno clona il progetto, sarà da "il server", non dal laptop. – user744629

risposta

3

È possibile, più o meno direttamente tirare e spingere tra i "client", vale a dire PC e laptop. Il trasporto può essere una connessione diretta come SSH o HTTP. Ma puoi anche usare un altro repository su un supporto esterno, che può essere una chiavetta USB, un disco rigido esterno o persino un servizio come Dropbox.

In questo modo il flusso di lavoro potrebbe essere la seguente:

  1. apportare modifiche al computer portatile
  2. confermare le modifiche sul vostro computer portatile
  3. spinta impegna a repository su una chiavetta USB
  4. tirare commit da la chiavetta USB al repository sul tuo PC
  5. Apporta ulteriori modifiche
  6. Impegnati - potresti anche modificare l'altro impegnarsi se si desidera che le modifiche devono essere atomica
  7. spingere il commit finale al repository sul server

essere consapevoli del fatto che avrete sempre bisogno di confermare le modifiche a livello locale prima di poterli spingere ad un altro repository. Sembra che tu vieni da un altro sistema SCM come Subversion dove commettere significa sempre "rendere le modifiche visibili sul server e per tutti". Git funziona in modo diverso, i commit sono locali solo prima di spingerli.

+0

Darò una prova a Dropbox. Un'altra domanda riguardo a questo però: invece di creare un nuovo repository nella directory dropbox è ok avere una directory di lavoro al suo interno che verrebbe sincronizzata tramite dropbox e solo push su un repository (quello sul mio server)? –

+0

Sì, funzionerebbe anche. Ma Dropbox sincronizza ogni modifica apportata alla copia di lavoro. Quindi questo potrebbe essere un po 'un problema. – Koraktor

1

È possibile utilizzare un servizio come Dropbox se è necessaria una soluzione "rapida e sporca". Ho un paio di pronti contro termine nella mia dir Dropbox :)

1

Basta usare il comando rsync. Assicurati di essere nel tuo root root path locale ed esegui: rsync -a --exclude=.git . [email protected]:[Your Remote Path]

puoi correggere il tuo codice in locale e rsync. Quando è possibile distribuire il codice, eseguire il commit del problema di distribuzione.

è possibile configurare il proprio alias remoto ssh nel file ~/.ssh/config, google per sapere come configurarlo. Quindi il tuo comando sarà: rsync -a --exclude=.git . [remote-alias-name]:[Your Remote Path] E non è necessario inserire la password.

Problemi correlati