¿Se empujan los ganchos de git hacia el control remoto cuando 'git push'?


94

Si creo un nuevo script de gancho en mi repositorio local en repo / .git / hooks / post-commit y luego ejecuto "git push", ¿los hooks se envían al control remoto? Entonces, cuando los otros desarrolladores ejecuten "git pull" desde el mismo origen, ¿obtendrán mis nuevos ganchos?



Respuestas:


80

No. Los hooks son por repositorio y nunca se insertan. Del mismo modo, la configuración del repositorio tampoco se inserta, ni hay nada dentro .git/info, ni una serie de otras cosas.

Empujar y tirar solo intercambia ramas / etiquetas y objetos de confirmación (y cualquier cosa accesible desde una confirmación, por ejemplo, árboles, blobs).


14
¿Hay alguna manera de tener ganchos en el centro y hacer que se tiren de cada clon y se apliquen?
f1wade

4
@ f1wade Podrías agregar un .githooksdirectorio que estaría controlado por versiones, luego sym-link o crear scripts de enlace de contenedor desde adentro .git. La clonación no se conectaría automáticamente, .githookspero una vez conectada, puede insertar y extraer nuevas versiones de los scripts de enlace.
Philip Couling

47

No, los ganchos de git no se insertan ni se tiran, ya que no forman parte del código del repositorio.

Consulte la documentación para obtener una lista de ganchos sencillos del lado del cliente y del lado del servidor.

Si desea habilitar algunos enlaces para todos los clientes que clonan o extraen de un repositorio determinado, debe agregar los enlaces a su base de código y luego crear su propio script para copiarlos o vincularlos desde repo/.git/hooks/.


4
pero ¿cómo se llama al script de copia?
Adam Johns

6
@AdamJohns Lo llama el usuario / desarrollador, probablemente en la forma de un setup.shque el desarrollador ejecuta cuando clona el repositorio por primera vez. Después de esto, las actualizaciones de los ganchos pueden ocurrir automáticamente al tener un gancho que vuelva a ejecutar un script actualizándolos después de cada extracción, por ejemplo. Por lo tanto, no tiene que depender del desarrollador para que lo haga por sí mismo.
cm92

4

Lamentablemente, no, pero desde git 2.9 puede colocarlos en la carpeta .githooks (como otros mencionaron) y ejecutar:

git config --local core.hooksPath .githooks/

Por lo tanto, no se necesitan enlaces simbólicos ni archivos de copia.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.