Necesito realizar algunas acciones (preparar archivos de mensaje gettext * .mo) en mi proyecto cada vez que ejecuto git pull. ¿Hay algún gancho de git adecuado, que podría usar para este propósito, por favor?
@ Alan: Eso definitivamente no es un duplicado. Esta pregunta es sobre un gancho en el lado local , donde corres git pull. El que vinculó se trata de activar un gancho en el control remoto , cuando alguien tira de él. (Y es una pregunta muy extraña, implica que están usando un repositorio central no descubierto ...)
Cascabel
2
@ Alan: Suficientemente fácil de perder si estabas descremado, espero que no haya sido demasiado duro. Me pongo paranoico por las preguntas que se cierran incorrectamente, ya que reabrir los votos lleva mucho más tiempo en acumularse.
Cascabel
1
Jefromi: Tienes toda la razón. No hay necesidad de preocuparse. Me entristecí por haber escaneado e iniciado el cierre.
Alan Haggai Alavi el
Respuestas:
184
La githookspágina del manual es una lista completa de ganchos. Si no está allí, no existe.
Dicho esto, no es un gancho posterior a la fusión, y todos los tirones incluye una fusión, aunque no todas las fusiones son tirones. Se ejecuta después de las fusiones y no puede afectar el resultado. Nunca se ejecuta si hubo conflictos; tendrías que retomar eso con el enlace posterior a la confirmación si realmente importa, o invocarlo manualmente.
@Jefromi "todos los pulls incluyen una fusión", incluso si hago un pull --rebase?
FMaz008
11
También se descubrió que la fusión nunca se ejecuta cuando se ejecuta git pullsi no hay cambios que realizar (ya está actualizado).
Joe Bergantine
11
@jbergantine: supongo que fui impreciso en mi respuesta: todos los tirones que no son no operativos incluyen una fusión. Pero ... en general, si está tratando de tomar medidas cada vez que ocurre una fusión, no creo que quiera tomar medidas cuando alguien hace una fusión sin operación. Por ejemplo, sería un desperdicio para el OP recrear esos archivos si nada ha cambiado.
Cascabel
12
Si realmente quieres hacer algo cada vez que tiras ... puedes alias 'git pull' para llamar a un script que hace el git pull y luego hace otra cosa
Shadow Radiance
13
git pullcon rebase (ya sea con --rebaseo con la configuración pull.rebase=true) no incluye una fusión y no activará el enlace posterior a la fusión. Para este caso, puede especificar --no-rebaseasegurarse de que se activa el gancho o utilizar el gancho posterior a la reescritura.
git pull
. El que vinculó se trata de activar un gancho en el control remoto , cuando alguien tira de él. (Y es una pregunta muy extraña, implica que están usando un repositorio central no descubierto ...)Respuestas:
La
githooks
página del manual es una lista completa de ganchos. Si no está allí, no existe.Dicho esto, no es un gancho posterior a la fusión, y todos los tirones incluye una fusión, aunque no todas las fusiones son tirones. Se ejecuta después de las fusiones y no puede afectar el resultado. Nunca se ejecuta si hubo conflictos; tendrías que retomar eso con el enlace posterior a la confirmación si realmente importa, o invocarlo manualmente.
fuente
git pull
si no hay cambios que realizar (ya está actualizado).git pull
con rebase (ya sea con--rebase
o con la configuraciónpull.rebase=true
) no incluye una fusión y no activará el enlace posterior a la fusión. Para este caso, puede especificar--no-rebase
asegurarse de que se activa el gancho o utilizar el gancho posterior a la reescritura.post-merge
- Consulte https://git-scm.com/docs/githooks#_post_merge para obtener más detalles sobre cómo usarlo.fuente