Empujar tu repositorio Git local a un servidor de DreamHost — Linux & Mac OS X

Generalidades

Estas instrucciones asumen que has creado tu aplicación o sitio web en la computadora de tu hogar, y luego usaste Git para crear un repositorio local.

Los siguientes pasos describen cómo enviar tu repositorio Git local a tu servidor DreamHost. De esta manera, puedes desarrollar tu sitio web en la computadora de tu hogar e impulsar los cambios a tu sitio web en vivo DreamHost.

Empujar desde Linux o Mac OS X

  1. En su computadora local, navegue hasta el directorio de tu usuario ~/.ssh:
    [local ~]$ cd ~/.ssh
  2. Si el directorio no existe, créelo:
    [local ~]$ mkdir ~/.ssh
  3. Configura tus Llaves SSH ejecutando el siguiente comando:
    [local ~]$ ssh-keygen -t rsa -b 4096 -C "DreamHost Git repo"
    
  4. Ingresa un nombre para el archivo cuando se te solicite, como 'dreamhost-git-key'.
  5. Cuando se te solicite ingresar una contraseña, haz clic en 'Enter' dos veces para omitir.
    Se crean dos archivos nuevos en el directorio .ssh de tu usuario:
    [local ~]$ cd ~/.ssh
    [local ~]$ ls -la
    dreamhost-git-key
    dreamhost-git-key.pub
  6. Utiliza las siguientes instrucciones para copiar tu clave pública en el archivo 'key_keys' del servidor DreamHost.

    Para ejecutar los siguientes comandos, necesitas el nombre de tu servidor DreamHost y el usuario/contraseña de tu sitio web. Visita los siguientes artículos para ubicar esta información:

    Si estás usando Linux:
    [local ~]$ ssh-copy-id -i ~/.ssh/dreamhost-git-key.pub user@server.dreamhost.com
    Si estás utilizando Mac OS X (también funciona con Linux):
    [local ~]$ cat ~/.ssh/dreamhost-git-key.pub | ssh user@server.dreamhost.com "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"
    

    Puedes recibir el siguiente error al ejecutar este comando:

    mkdir: cannot create directory `/home/user/.ssh': File exists

    Esto simplemente significa que el directorio /.ssh ya existe en el servidor web. Si ves esto, elimina la parte del comando que crea el directorio y vuelve a ejecutarlo. Por ejemplo:

    [local ~]$ cat ~/.ssh/dreamhost-git-key.pub | ssh user@server.dreamhost.com "cat >> ~/.ssh/authorized_keys"
    
  7. Inicia sesión en tu servidor DreamHost a través de SSH:
    [local ~]$ ssh user@server.dreamhost.com
    

    Si recibes un error al intentar iniciar sesión, es posible que debas usar ssh-agent. Consulta el siguiente artículo para obtener más información:

  8. Confirma que tu clave se ha agregado al servidor DreamHost ejecutando lo siguiente (esto debería generar tu clave):
    [server]$ cat ~/.ssh/authorized_keys
  9. Crea un nuevo directorio para tu nuevo repositorio remoto en tu servidor DreamHost. Si este código está destinado a reemplazar tu sitio web existente, puede nombrarlo igual que tu sitio web que termina en .git.

    Dado que este es un repositorio remoto y no un repositorio que funcione, el nombre del directorio que crees debe terminar con .git. Luego puedes retirar este repositorio en el futuro para trabajar en él.

    [server]$ cd ~
    [server]$ mkdir example.com.git
    [server]$ cd ~/example.com.git
    [server]$ git init --bare
    [server]$ exit
    
  10. Navega a tu repositorio git en tu computadora local, y luego empuja al repositorio remoto en tu servidor DreamHost. Asegúrese de cambiar 'user' y 'server' to your actual Nombre de usuario DreamHost y Nombre de servidor real:
    [local ~]$ git remote add dreamhost ssh://user@server.dreamhost.com/~/example.com.git
    [local ~]$ git push -u dreamhost master
    
    Deberías ver la siguiente respuesta:
    Counting objects: 3, done.
    Delta compression using up to 2 threads.
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (3/3), 200 bytes | 0 bytes/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    To ssh://username@server.dreamhost.com/~/example.com.git
    * [new branch] master -> master
    

¿Cómo puedo confirmar que mi repositorio se envió correctamente a mi servidor DreamHost?

Si ejecutas 'git status' en el directorio ~/example.com.git, aparece el siguiente error:

[server]$ git status
fatal: This operation must be run in a work tree

Esto se debe a que es un repositorio 'desnudo', no un directorio de trabajo que puede usar. Podrías clonar este repositorio remoto en un repositorio Git que funcione. Esto te permite ver los archivos que se enviaron al servidor.

  1. Inicie sesión en su servidor DreamHost a través de SSH.
  2. Clona el repositorio en una nueva ubicación ejecutando lo siguiente en el directorio de tu usuario:
    [server]$ mkdir ~/cloned.example.com.git
    [server]$ git clone ~/example.com.git ~/cloned.example.com.git
    [server]$ cd ~/cloned.example.com.git
    [server]$ ls -la
    
    Este directorio clonado ahora contiene todos los archivos que empujaste desde tu máquina local.

¿Cómo puedo usar Git para el desarrollo web?

Consulta el siguiente artículo para obtener instrucciones sobre cómo enviar los cambios en tu computadora local a tu sitio web en vivo.

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.