¿Por qué no veo archivos después de enviar a Bare git repo?

3 minutos de lectura

Tengo mi repositorio de desarrollo local (origen) y un repositorio remoto que creé usando git inicializar –bare como recomendado aquí. yo también corrí git --bare update-server-info

git config --bool core.bare true

Git remoto -v muestra

origin  http://staging.websitename.com (fetch)

origin  http://staging.websitename.com (push)

remote  ssh://user@xx.xx.xx/home/user/public_html/staging (fetch)

remote  ssh://user@xx.xx.xx/home/user/public_html/staging (push)

Después de esto y ejecutando git push remote o git push -all remote, pasa y no me da errores. ¿Por qué no veo los archivos en el repositorio remoto?

Compressing objects: 100% (4121/4121), done.
Writing objects: 100% (4242/4242), 18.70 MiB | 694 KiB/s, done.
Total 4242 (delta 495), reused 0 (delta 0)

Los repositorios básicos no tienen copias de trabajo, por lo que no “verá” ningún archivo. Intenta hacer un registro de git, puedes ver las confirmaciones. Clone desde el repositorio básico y obtendrá archivos.

  • Gracias, pensé que los repositorios desnudos eran los repositorios ideales que solo se EMPUJARÁN, así que iba a usar esto como un servidor de prueba (por lo que, por supuesto, necesitaré ver los archivos. ¿Debería CLONAR el repositorio local aunque no lo haga? ¿No necesitas el árbol completo de git?

    – El Atlante

    1 oct 2013 a las 15:17

  • @KevinOrin: debe tener su versión de etapa en ejecución separada del repositorio básico, ya que la inserción en un repositorio no básico tiene una serie de problemas. Puedes actualizarlo con un git pull se ejecuta desde un enlace posterior a la actualización en el repositorio básico.

    – Benjamín Banner

    1 oct 2013 a las 15:25


  • Gracias, pero no creo que necesite un repositorio de Bare en absoluto @BenjaminBannier: solo me pregunto cómo configurar la puesta en escena, ya que un simple “git init” en el pasado provocó un problema de árbol cuando intenté presionarlo.

    – El Atlante

    1 oct 2013 a las 15:32

  • Un repositorio simple contiene solo su historial. Un repositorio normal contiene su historial y una copia de cualquier rama que haya consultado. La razón por la que deberías tener un repositorio simple es que uno normal tiene que ser desprotegido en alguna parte, y no puedes empujar a una rama desprotegida (git no sabría qué hacer con los conflictos).

    – ChrisA

    1 oct 2013 a las 16:41

avatar de usuario
Torek

El punto esencial de un --bare repo es que no tiene una copia de trabajo (ni un índice), lo que significa que no hay nada que se estropee con un empujón.

Si desea que ciertos impulsos (a una o más sucursales particulares) se “implementen automáticamente”, la forma de hacer que eso suceda es usar un gancho git en el --bare repositorio El anzuelo, generalmente post-receiveaunque es posible utilizar el pre-receive o update ganchos aquí, se ejecuta en todos push, por lo que debe comprobar si el push en cuestión es “interesante” (afecta a la(s) rama(s) de implementación automática) y, de ser así, desencadenar la implementación.

El enlace se ejecuta en nombre del proceso que realiza el envío (a menudo ssh como algún usuario, como en su git remote -v salida), por lo que si los archivos desplegados deben ser propiedad de otro usuario, debe organizarlo de alguna manera. Un método fácil, simple y razonable es escribir en un archivo que está configurado en modo rw-rw-rw- (que todos pueden escribir) y hacer que algo (como un trabajo cron) verifique el archivo periódicamente. Si se escribe, el trabajo cron, que se ejecuta como el usuario de implementación, puede extraer la versión más reciente de las ramas correspondientes. Otro método es ponerse en contacto con un servidor (títere, etc.) que hace esto.

Si el usuario que hace el push (user@xx.xx.xx) puede poseer los archivos, un método aún más simple es ejecutar git checkout en el gancho, pero con un árbol de trabajo alternativo que no tiene otra conexión con el --bare repositorio

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad