2010-01-19 26 views
16

Así que tengo un repositorio git que sacó en un punto y ese repositorio reside en un servidor. No tengo acceso al repositorio original del que lo saqué. ¿Cómo obtengo el código del servidor existente en otra computadora?Repositorio Git de una máquina a otra

EDIT 1: Así que aquí es lo que parece:

  • ORDENADOR A: El repositorio git que en un principio que el check out a partir. Ya no tengo acceso a esto.
  • COMPUTADORA B: servidor compartido en el que tengo el código desprotegido.
  • COMPUTER C: A Local laptop.

¿Puedo hacer una copia simple de ese directorio sin usar git, o puedo usar git para clonar de B a C?

+0

Wow - sólo mirar en esta pregunta - ¡hilarante! –

Respuesta

5

Usted puede tirar de la ubicación de red o copiar todo el directorio (carpeta que contiene .git) cruzando al otro equipo.

3

Usted sólo puede clonar desde el servidor, suponiendo que tiene acceso a la que se almacena el clon - el poder de distribución;)

+0

No estoy seguro de tener acceso a donde se almacena el clon. No estoy seguro de cómo saqué el código original tampoco. –

+0

Creo que Matt quiere clonarlo desde el computor B ("servidor existente") a la computadora C ("otra computadora"). La computadora A es a la que ya no tienes acceso. git clone entry en el manual: http://www.kernel.org/pub/software/scm/git/docs/git-clone.html –

+0

¿Tiene un clon en su computadora localmente entonces? Puedes clonar de esa manera; los repositorios contienen toda la información, modulo cualquier cambio desde la última vez que pulsó. –

0

¿Quiere decir que quiere que el clon a otro equipo?

¿Qué tal:

git clone ssh://myserver/path/to/myproject.git 
-2

Si entiendo bien la pregunta, solo quiere transferir el historial de código de B a C. En realidad, porque git utiliza un modelo descentralizado, B tiene un historial completo del código hasta el último punto de sincronización entre B y A .

me ocurren tres métodos si sólo desea transferir el historial de códigos de B a C:

  • copia directa/rsync/etc. simplemente copiar todos los archivos y estructuras de \ B-machine \ code.git a \ C
  • git clone: ​​esta es la mejor opción si C puede tener acceso a B a través de http o ssh
  • paquete
  • git: git apoya comando bundle, y después de paquete, que copia archivo de paquete/rsync/ftp/scp a C
2

se puede ejecutar desde el ordenador C:

git clone [email protected]_B:path/to/root/of/repository 

el supuesto de que el equipo B tiene un servidor ssh en ejecución. De lo contrario, se admiten otros protocolos (archivo: //, http: //, \\ computer_B (NetBios), ...)

31

Esto se logra creando un clon del repositorio que está en COMPUTER B, ejecutando el comando git clone en la COMPUTADORA C, donde desea que se cree el repositorio clonado. La clonación en git puede hacerse usando múltiples protocolos, incluidos ssh, https, git; y estos requieren una configuración adecuada para que el comando git clone tenga éxito.

El método más sencillo es empezar el servidor git en el equipo B usando este comando:

> git daemon 

Para obtener ayuda con el comando anterior, ejecute git help daemon

A continuación, coloque un archivo de marcador en la carpeta .git del repositorio en COMPUTER B para otorgar permiso al servidor git para ejecutar el comando clonar en ese repositorio. Esto se hace por:

> cd <repository root>/.git 
> touch git-daemon-export-ok 

Ahora, desde un terminal C en el ordenador, ejecute los siguientes comandos:

> cd <folder in which to create the cloned repository> 
> git clone git://<ip address of COMPUTER B>/<full path of the repository on COMPUTER B> 

Esto creará el repositorio clonado en el ordenador C.

+0

Da error: acceso denegado o repositorio no exportado. –

+0

Tengo 'conexión rechazada' ¿cómo puedo configurar git pemission en git repos? –

Cuestiones relacionadas