Server Manager/ Help
Open Server Manager →

Traer lo último de git

Haz clic en Traer lo último en el panel del servicio. Obtenemos los commits más recientes de tu repositorio y, en apps web, reiniciamos tu app.

¿Aún no has desplegado nada? → Desplegar un sitio web desde un repositorio git o Desplegar una app web desde un repositorio git

Después de desplegar un sitio o una app desde un repositorio git, subir commits nuevos a tu repositorio no actualiza automáticamente el servidor. Haz clic en Traer lo último de git para poner el servidor al día: basta un clic, ejecuta git pull --ff-only por detrás y, en apps web, instala cualquier dependencia nueva y reinicia tu app con .

Cuando el servidor va por detrás de tu repositorio, la tarjeta de la carga de trabajo en la pantalla de inicio muestra una pequeña etiqueta **· ⤓ N behind** junto a su estado: así ves de un vistazo que hay algo que traer. Pasa el cursor por encima para ver el comando exacto.

1. Abre el panel del servicio

En la pantalla de inicio, haz clic en la tarjeta del sitio o la app que quieres actualizar. Se abrirá el panel del servicio.

Haz clic en la tarjeta del sitio o la app en la pantalla de inicio para abrir su panel de servicio
Haz clic en la tarjeta del sitio o la app en la pantalla de inicio para abrir su panel de servicio

2. Abre la pestaña Controles y haz clic en "Traer lo último de git"

Tanto en sitios estáticos como en apps web, Traer lo último de git está en la pestaña Controles, junto a Reiniciar / Detener / Iniciar / Generar clave de despliegue.

Pestaña Controles para sitio estático y app web: Traer lo último de git en ambos
Pestaña Controles para sitio estático y app web: Traer lo último de git en ambos

El botón aparece en dos sitios más, para que lo tengas a mano:

  • Sitio estático — también en la barra de herramientas de la pestaña Archivos (⤓ Traer lo último de git), porque ahí es donde suelen trabajar quienes gestionan sitios estáticos.
  • Cualquier tipo — en la pestaña Estado, cuando hay commits nuevos que traer. Aparece un aviso de "N commits por detrás de origin" con un botón Traer lo último al lado. Usa esta vista cuando quieras ver exactamente qué hay pendiente (número de commits, SHA actual frente al remoto) antes de traer los cambios.
La pestaña Estado muestra un aviso de "N commits por detrás" con un botón Traer lo último
La pestaña Estado muestra un aviso de "N commits por detrás" con un botón Traer lo último

3. Faro hace el pull

El chat toma el relevo. En un sitio estático, ejecutamos git pull --ff-only y sigue sirviendo el sitio, sin necesidad de reiniciar. En una app web, también instalamos cualquier dependencia nueva (npm ci / pip install) y reiniciamos tu app.

El chat muestra los pasos del pull y el nuevo SHA del commit
El chat muestra los pasos del pull y el nuevo SHA del commit

4. Listo

La sección de estado de Git se actualiza a "Sincronizado" en el nuevo commit.

La pestaña Estado ahora muestra Sincronizado en el nuevo commit
La pestaña Estado ahora muestra Sincronizado en el nuevo commit

Si el sitio no se desplegó desde un repositorio git

Faro lo comprueba primero y te lo dice en el chat: "Este sitio no se desplegó desde un repositorio git, así que no hay nada que traer." Para sustituir los archivos, vuelve a desplegar con Desplegar un sitio web desde tu ordenador (o el equivalente para apps web): suelta una carpeta nueva sobre el mismo sitio y reemplazaremos lo que haya allí.

Si el pull falla con "would be overwritten"

Usamos git pull --ff-only, que rechaza los merges que no son fast-forward. Si algo modificó un archivo con seguimiento en el servidor —la pestaña Archivos, un cliente SFTP como FileZilla, una sesión SSH o incluso la propia app en ejecución—, el pull puede fallar con "Your local changes would be overwritten by merge".

La sección Estado de Git de la pestaña Estado te muestra qué ha cambiado:

  • M = se editó en el servidor un archivo con seguimiento. Entra en conflicto con el pull. Usa el archivo del repositorio (descarta tu cambio local): ejecuta sudo git checkout -- <file> desde la ruta de la carga de trabajo y luego vuelve a hacer pull.
  • ? = un archivo sin seguimiento (por ejemplo, datos subidos por usuarios en uploads/ o archivos en tiempo de ejecución que crea tu app). No entra en conflicto: git pull deja los archivos sin seguimiento tal como están. No hace falta hacer nada.

Para repos privados: genera primero una clave de despliegue

La primera vez que uses Traer lo último en un repositorio privado, la credencial HTTPS en caché no servirá para pulls sin intervención. La solución es crear una clave de despliegue una sola vez.

  1. En el panel del servicio, haz clic en Generar clave de despliegue (junto a Traer lo último).
  2. Faro genera un par de claves SSH en el servidor y te muestra la clave pública en el chat.
  3. Pégala en la configuración de tu repositorio → Deploy keys (GitHub) o SSH keys (GitLab, Bitbucket, Codeberg, Gitea). Deja SIN MARCAR el acceso de escritura: con solo lectura basta.
  4. Responde done en el chat: Faro cambia el remoto de git de HTTPS a SSH y lo prueba.

Después de eso, Traer lo último funciona sin volver a pedir credenciales.

Chat que muestra la generación de la clave de despliegue: Faro presenta la clave pública para que la pegues en la configuración de tu repositorio
Chat que muestra la generación de la clave de despliegue: Faro presenta la clave pública para que la pegues en la configuración de tu repositorio

Monorepo / despliegues desde subdirectorios

Si desplegaste desde un subdirectorio de un monorepo (por ejemplo, apps/web), Traer lo último sigue funcionando: sparse-checkout se encarga por detrás. Traemos los cambios al clon persistente en /var/www/.helm-repos/<domain>/ (o /opt/.helm-repos/<app>/ para una app web nativa) y tu directorio de despliegue es un enlace simbólico que refleja automáticamente los archivos nuevos.

Cambiar de rama

Traer lo último trae cambios de la rama que clonaste durante el despliegue inicial. Para cambiar a otra rama, vuelve a desplegar desde el modal y elige la nueva rama en Avanzado (git).