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

Generalidades

Este artículo asume que ya has creado tu sitio web (o aplicación) en el computador de tu hogar. Luego te guía a través de cómo colocarlo bajo el control de versión de git y usar tu servidor DreamHost como el repositorio 'remoto' (externo) para enviarlo.

De esta manera, podrás desarrollar tu sitio web completamente (o aplicación) en el computador de tu hogar mientras usa tu servidor de DreamHost como un lugar adicional para guardar tu código.

Usar Git para desarrollo web

Las instrucciones en este artículo solamente 'respaldan' tu repositorio local a un servidor de DreamHost. Estas instrucciones no actualizan ni cambian tu sitio web en vivo.

Revisa el siguiente artículo para más instrucciones de cómo enviar tus cambios de tu computador local a tu sitio web en vivo.

 

Paso 1 — Crear una llave de emparejamiento de SSH

Este paso explica como crear una llave de emparejamiento de SSH en tu computador Windows. Necesitarás usar esto para conectarte a tu servidor de DreamHost.

  1. En tu computador local, navega al directorio ~/.ssh de tu usuario:
    [local ~]$ cd ~/.ssh
    Si el directorio no existe, créalo:
    [local ~]$ mkdir ~/.ssh
  2. Configura las llaves de SSH corriendo el siguiente comando:
    La opción -C te permite agregar un comentario al archivo de la llave privada. El comentario de la llave puede ser útil para ayudar a identificar la llave en el futuro.
    [local ~]$ ssh-keygen -t rsa -b 4096 -C "DreamHost Git repo"
    Generating a public/private rsa key pair.
    Enter the file in which you wish to save they key (i.e., /Users/username/.ssh/id_rsa): dreamhost-git-key
  3. Ingresa un nombre para el archivo cuando se indique, como dreamhost-git-key.
  4. Cuando se indique ingresa una contraseña, da clic en Enter dos veces para omitir.
    Los dos archivos nuevos son creados en el directorio .ssh de tu usuario:
    [local ~]$ cd ~/.ssh
    [local ~]$ ls -la
    dreamhost-git-key
    dreamhost-git-key.pub

Paso 2 — Cargar la llave pública en tu servidor DreamHost

Este paso copia tu llave pública dentro del archivo de tu servidor de DreamHost authorized_keys.

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

Adicionalmente, el nombre de usuario del sitio web de DreamHost con el que estás corriendo el comando debe configurarse como un usuario Shell. Revisa el siguiente artículo sobre instrucciones sobre cómo configurar esto:

  1. Corre el siguiente comando para copiar ty llave a tu servidor DreamHost.
    Si estás usando Linux:
    [local ~]$ ssh-copy-id -i ~/.ssh/dreamhost-git-key.pub user@server.dreamhost.com
    Si estás usando 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"
    

    Puede que recibas el siguiente error cuando corras este comando:

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

    Esto solo 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 vía SSH:
    [local ~]$ ssh user@server.dreamhost.com
    

    Si recibes un error intentando iniciar sesión, puede que necesites usar ssh-agent. Revisa el siguiente artículo para más información:

  3. Confirma que tu llave ha sido agregada al servidor de DreamHost corriendo lo siguiente (esto debería generar tu clave):
    [server]$ cat ~/.ssh/authorized_keys

Paso 3 — Crear un repositorio simple en tu servidor DreamHost

Este paso crea un repositorio básico en tu servidor DreamHost. Este será el repositorio remoto al que ingresas desde tu computador local.

  1. Crea un nuevo directorio para tu repositorio remoto nuevo en tu servidor de DreamHost. Si este código está destinado a actualizar tu sitio web existente, debes nombrarlo igual que tu sitio web que termina en .git. Por ejemplo, algo como example.com.git.
    [server]$ cd ~
    [server]$ mkdir example.com.git
    [server]$ cd ~/example.com.git
    [server]$ git init --bare
    [server]$ git symbolic-ref HEAD refs/heads/main
    
  2. Corre ls -la para confirmar que los archivos y directorios han sido creados.
    [server]$ ls -la
    HEAD
    /branches
    config
    description
    /hooks
    /info
    /objects
    /refs
  3. Confirma que el archivo HEAD está configurado para usar main corriendo el siguiente comando:
    [server]$ cat HEAD
    ref: refs/heads/main
    Deberías ver a main siendo usado.

Paso 4 — Configurar git en tu computador

  1. Corre los siguientes comandos para crear tu identidad que va a ser usada con Git.
    [local ~]$ git config --global user.name "John Doe"
    [local ~]$ git config --global user.email johndoe@example.com
  2. Corre git --version en tu computador local.
    [local ~]$ git --version
    Si la versión local de tu git es al menos 2.28, corre el siguiente comando init.defaultBranch para asegurarte de que todos los repositorios recién creados usan el nombre main como la rama principal.
    [local ~]$ git config --global init.defaultBranch main

    Si por alguna razón no puedes actualizar tu versión de git al menos a 2.28, aún puedes cambiar manualmente el nombre de la rama principal a main luego de que hayas hecho el primer commit de abajo. Revisa el siguiente artículo para más detalles:

    El comando de arriba crear un archivo .gitconfig bajo tu usuario.

Paso 5 — Crear tu repositorio git local

Estos pasos crean un repositorio git para tu sitio web en el computador de tu hogar. Luego usarás esto para enviar su contenido a tu servidor DreamHost.

Corre lo siguiente en el directorio de tu proyecto para iniciar el repositorio y crear tu primer commit:

[local ~]$ git init
[local ~]$ git add .
[local ~]$ git commit -m "First Commit"

Paso 6 — Enviar tu repositorio local al repositorio remoto

Este paso envía tu repositorio local a tu servidor de DreamHost.

  1. Agrega el repositorio básico que creaste en tu servidor DreamHost como un 'remoto' dentro del repositorio git de tu computador local. Asegúrate de cambiar user y server a tu usuario de DreamHost y nombre de servidor.

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

    [local ~]$ git remote add dreamhost ssh://user@server.dreamhost.com/~/example.com.git
  2. Verifica que el nuevo remoto existe.
    [local ~]$ git remote show
    dreamhost
    
  3. Envía el repositorio local a tu servidor de DreamHost.
    [local ~]$ git push -u dreamhost main
    

Paso 7 — Confirmar que tu repositorio fue lanzado correctamente a tu servidor DreamHost

  1. Inicia sesión en tu servidor DreamHost vía SSH.
  2. Navega al directorio /example.com.git.
    Cuando corres git status en el directorio /example.com.git, recibirás el siguiente error porque este directorio no es un 'árbol de trabajo':
    [server]$ git status
    fatal: This operation must be run in a work tree
  3. Clona el repo a una nueva ubicación corriendo lo siguiente, lo que te permite ver sus contenidos:
    [server]$ mkdir ~/cloned-example.com.git
    [server]$ cd ~/cloned-example.com.git
    [server]$ git clone ~/example.com.git ~/cloned-example.com.git
    [server]$ ls -la
    Este directorio contiene todos los archivos que enviaste desde tu máquina local..

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?