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

Generalidades

Estas instrucciones asumen que has creado tu aplicación o sitio web en el computador 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 el computador de tu hogar e empujar los cambios a tu sitio web en vivo DreamHost.

Crear una llave de emparejamiento de SSH

  1. En tu computador local, navega hasta el directorio de tu usuario ~/.ssh:
    [local ~]$ cd ~/.ssh
    Si el directorio no existe, créalo:
    [local ~]$ mkdir ~/.ssh
  2. Configura tus Llaves de SSH corriendo el siguiente comando:
    [local ~]$ ssh-keygen -t rsa -b 4096 -C "DreamHost Git repo"
    
  3. Ingresa un nombre para el archivo cuando se te solicite, como dreamhost-git-key.
  4. 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

Subir la llave pública a tu servidor de DreamHost

  1. Usa las siguientes instrucciones para copiar tu clave pública en el archivo authorized_keys del servidor DreamHost.

    Para correr 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 correr este comando:

    mkdir: cannot create directory `/home/username/.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 correrlo . Por ejemplo:

    [local ~]$ cat ~/.ssh/dreamhost-git-key.pub | ssh user@server.dreamhost.com "cat >> ~/.ssh/authorized_keys"
    
  2. 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:

  3. Confirma que tu clave se ha agregado al servidor DreamHost corriendo lo siguiente (esto debería generar tu clave):
    [server]$ cat ~/.ssh/authorized_keys
  4. 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]$ git symbolic-ref HEAD refs/heads/main
    
  5. Corre ls -la para confirmar que los archivos y directorios han sido creados.
    [server]$ ls -la
    HEAD
    /branches
    config
    description
    /hooks
    /info
    /objects
    /refs
  6. Confirma que el archivo HEAD está configurado para usar main corriendo el siguiente comando:
    [server]$ cat HEAD
    ref: refs/heads/main
    Deberás ver que main está usándose.

Crear un repositorio de Git en tu computador

  1. Corre los siguientes comandos para crear tu identidad para usar con Git.
    [local ~]$ git config --global user.name "John Doe"
    [local ~]$ git config --global user.email johndoe@example.com
    [local ~]$ git config --global init.defaultBranch main

    La última línea asegura que los repositorios recién creados usen el nombre main como la rama principal. Revisa el siguiente artículo para obtener más detalles:

    Esto crea un archivo .gitconfig debajo tu usuario.
    [local ~]$ git init
    [local ~]$ git add .
    [local ~]$ git commit -m "First Commit"
  2. Navega a tu repositorio git en tu computador local y luego envía al repositorio remoto en tu servidor DreamHost. Asegúrate de cambiar user y server a tu usuario de DreamHost y nombre de servidor:

    La palabra dreamhost es solamente un alias. Se puede llamar como quieras. Pero este nombre de alias se usará cuando envíes tu contenido a github.com.

    [local ~]$ git remote add dreamhost ssh://user@server.dreamhost.com/~/example.com.git
    [local ~]$ git push -u dreamhost main
    

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

Si corres 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 puedes 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. Inicia sesión en tu servidor DreamHost a través de SSH.
  2. Clona el repositorio en una nueva ubicación corriendo lo siguiente en el directorio de tu usuario:
    [server]$ mkdir ~/cloned.example.com.git
    [server]$ git clone ~/example.com.git ~/cloned.example.com.git/span>
    [server]$ cd ~/cloned.example.com.git
    [server]$ ls -la
    
    Este directorio clonado ahora contiene todos los archivos que enviaste desde tu máquina local.

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

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

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?