2011-02-03 27 views
5

Tengo un proyecto en el que estoy trabajando y tengo la siguiente configuración: un servidor con mis repositorios git, una computadora de escritorio y una computadora portátil.sincronizar archivos sin comprometer?

Trabajo en mi proyecto a veces en el escritorio, a veces en mi computadora portátil.

¿Cómo puedo sincronizar mis archivos entre la PC de escritorio y la computadora portátil sin realizar cambios en el servidor?

Gracias

+0

Solo use una rama. – ismail

+1

La frase "un servidor con mis repositorios git, una computadora de escritorio y una computadora portátil" es realmente extraña. Presumiblemente, si está trabajando en la computadora portátil y en el escritorio, también tienen repositorios. Deja de pensar en los repositorios del servidor como diferentes del repositorio en el escritorio o la PC. Todos son iguales. –

+0

@william No estoy de acuerdo. Si alguien clona el proyecto, será desde "el servidor", no desde la computadora portátil. – user744629

Respuesta

3

Puede más o menos directamente tirar y empujar entre sus "clientes", es decir, PC y portátil. El transporte puede ser una conexión directa como SSH o HTTP. Pero también puede usar otro repositorio en medios externos, que puede ser un dispositivo USB, un disco duro externo o incluso un servicio como Dropbox.

De esta manera el flujo de trabajo podría tener este aspecto:

  1. hacer cambios en su ordenador portátil
  2. confirmar los cambios en su computadora portátil
  3. empuje compromete al repositorio en una memoria USB
  4. tirar de confirmación desde la memoria USB en el repositorio en su PC
  5. Haga más cambios
  6. Comételos - también puede enmendar su otro comprometerse si desea que los cambios estén atómica
  7. empujar sus confirmaciones finales al repositorio en el servidor

ser consciente de que siempre tendrá que confirmar los cambios a nivel local antes de poder empujar a otro repositorio. Parece que proviene de otro sistema SCM como Subversion, donde comprometerse siempre significa "hacer visibles los cambios en el servidor y para todos". Git funciona de manera diferente, los commit son solo locales antes de presionarlos.

+0

Voy a intentar con Dropbox. Sin embargo, otra pregunta con respecto a esto: en lugar de crear un nuevo repositorio en el directorio de Dropbox, ¿está bien tener un directorio de trabajo dentro que se sincronice a través de Dropbox y solo enviar a un repositorio (el de mi servidor)? –

+0

Sí, eso también funcionaría. Pero Dropbox sincronizaría cada cambio que realice en la copia de trabajo. Entonces esto podría ser un problema. – Koraktor

1

Puede utilizar un servicio como Dropbox si necesita una solución "rápida y sucia". Tengo un par de repositorios en mi directorio de Dropbox :)

1

Solo uso el comando rsync. Asegúrese de estar en su ruta de acceso a la raíz del repositorio local, y ejecute: rsync -a --exclude=.git . [email protected]:[Your Remote Path]

Puede corregir su código en local y rsync. Cuando el código se puede implementar, entonces cometer el problema de implementación.

puede configurar su alias remoto ssh en el archivo ~/.ssh/config, google para saber cómo configurarlo. Entonces su comando será: rsync -a --exclude=.git . [remote-alias-name]:[Your Remote Path] Y no necesita ingresar la contraseña.

Cuestiones relacionadas