2012-06-05 10 views
5

Resumen: Quiero editar archivos localmente, luego presiono tanto para Github como para mi servidor web.Empujar al servidor remoto y Github

Tengo los dos controles remotos configurados sin problema, así que ahora mismo puedo hacer esto; sin embargo, tengo que tener la rama A extraída localmente y la rama B en el servidor. Luego tengo que SSH en el servidor y verificar la rama A (la que quiero). Realmente no quiero ni necesito una segunda sucursal, pero muchas publicaciones sugieren que no se puede o no se debe enviar a un repositorio no vacío. Debe haber una mejor manera. Incluso el solo uso de rsync sería más fácil que esto (y lo hice por un tiempo).

Extrañamente, esto nunca ocurre en Github. Casi todos mis repos solo tienen una sucursal y nunca recibí esta advertencia.

El mensaje de advertencia dice que puede configurar receive.denyCurrentBranch para ignorar, pero no sé cuán seguro/sensato es. Espero que alguien entienda mi vaga descripción (que se debe a mi conocimiento limitado de git) y conozca la solución óptima.

Respuesta

4

Sería más fácil configurar un enganche post-recepción en un repositorio simple en su servidor web.
De esta manera, este gancho puede:

  • cambio de directorio y tire de los nuevos cambios en el repositorio real no desnuda
  • la caja de la rama que desea

Ver "Git Post-Receive Hook for Website Staging" y el trabajo en "Using Git to manage a web site":

$ mkdir /var/www/www.example.org 
$ cat > hooks/post-receive 
#!/bin/sh 
GIT_WORK_TREE=/var/www/www.example.org git checkout -f 
$ chmod +x hooks/post-receive 

(Nota: hecho de la diversión, puede push to two different remote repos simultaneously)

+0

Me tomó un minuto digerir: '/ var/www/www.example.org' es el directorio del sitio real en el servidor, el archivo' post-receive' va en el repositorio desnudo en el servidor (debe ser un directorio diferente), y la URL a la que presionar es el repositorio desnudo. De hecho, leí esa guía que mencionaste antes de preguntar. Me confundí cuando el directorio site.git no tenía ninguno de mis archivos, pero creo que entiendo cómo funciona ahora. Gracias. – Daniel

Cuestiones relacionadas