2010-05-11 13 views
38

En una máquina (dirección IP 192.168.1.2), que crear un repositorio Git por¿Cómo puedo 'git clone' desde otra máquina?

$ cd /home/hap/working 
$ git init 
$ (add some files) 
$ git add . 
$ git commit -m 'Initial commit' 

Y tengo otra máquina en la misma red Wi-Fi. ¿Cómo puedo obtener clon de la otra máquina?

Respuesta

64

Es necesario utilizar un git + ssh URL para realizar la clonación de Git:

git clone git+ssh://[email protected]/~/working 

descomponerlo:

  • git+ssh dice Git que desea usar ssh para conectarse a la Repositorio de Git
  • hap es su nombre de usuario (supongo que basado en el directorio de inicio de su pregunta).
  • 192.168.1.2 es la máquina que desea conectarse a
  • ~/working es la ruta de acceso al repositorio Git en la máquina remota (por lo ~ es su directorio personal)

Algunas otras cosas a tener en cuenta:

  • Es necesario tener un servidor ssh activado en la máquina con el repositorio Git
  • que necesitará saber la contraseña para el usuario hap
+6

No creo que se necesite 'git + ssh: //'. Debería poder simplemente usar '[email protected]: ~/working'. También la clonación directamente desde un directorio de trabajo configura el clon para insertarlo en el repositorio de trabajo, lo cual debe evitarse. – bames53

+2

Esto puede ser útil, por ejemplo, si está trabajando en la máquina X que no puede acceder al repositorio remoto, pero puede acceder a otra máquina local que tiene acceso remoto. En mi caso, estoy usando esto donde desarrollo en una máquina Linux sin acceso al vpn necesario para ir directamente al control remoto. –

+0

¿Es tan fácil de clonar usando un certificado? –

2

Supongo que en ambas máquinas ha instalado Git.

Ahora lo que hace depende de los servicios que haya instalado, es decir, cómo puede conectarse de una máquina a la otra.

El caso más simple es cuando se tiene sshd que se ejecuta en la máquina que desea clonar de, y se puede ssh de la máquina que desea clonar a a la máquina que desea clonar a partir.

Si puede hacer

ssh 192.168.1.2 

(o si tiene nombre de usuario diferente en la otra máquina, ssh [email protected]), entonces usted debería ser capaz de clonar a través de SSH, como Josiah wrote:

git clone git+ssh://[email protected]/~/working 

Si desea seguir buscando/enviar entre máquinas, debe configurar la autenticación de clave pública para SSH, para no tener que proporcionar una contraseña en cada búsqueda.


Si usted no tiene sshd instalado en el equipo de origen, puede clonar utilizando el protocolo HTTP "inteligente" si tiene instalado un servidor web y se puede instalar scripts CGI (ver git-http-backend página de manual), o puede hacer clonar usando el protocolo HTTP "tonto" si tiene un servidor web instalado, pero solo puede servir archivos estáticos (primero debe ejecutar git update-server-info en el repositorio fuente), o puede clonar usando rsync si lo tiene instalado.

Como último recurso, puede usar "git bundle" para crear un archivo que puede mover, por ejemplo, usando un pendrive USB y clonarlo.

0

Creo que la gente está buscando esta respuesta. El siguiente comando en la terminal iniciará sesión en el servidor y clonará un repositorio existente. En la ubicación actual de la ruta del terminal (por lo que cd a la ubicación preferida primero).

sudo git clone [email protected]:/home/path/to/repo.git 

En caso de que no tenga la dirección IP. Use ping para determinar la ip de su servidor. Después de la dirección IP, no olvide utilizar el uso de un : y luego escriba la ruta absoluta.

+0

¿Por qué 'sudo', why server? op preguntado específicamente entre dos sistemas en una red, supuestamente para ahorrar ancho de banda ... esto no responde en absoluto a la pregunta y es completamente incorrecto. – thecarpy

+0

@thecarpy tienes razón cuando lo leí, tiene poco que ver con la pregunta exacta. – Michiel

+0

No clonar como root (con 'sudo'), todos los archivos en git serán propiedad de root ... – thecarpy

Cuestiones relacionadas