I have a remote server on which I have created a bare git repository.
I would like to create a hook so that a given script is run on the latest code received on any given branch.
Sé que el
post-receive hook can be used for it. However I want to do the following:
- Get hold of the branch on which code was received.
- Checkout the code in a temp location and run an operation on it.
¿Cómo hago lo anterior?
preguntado el 04 de julio de 12 a las 05:07
- For 1), you have an example of reading the branch name (through stdin):
"No se puede detectar la rama del gancho posterior a la recepción de Git"
- For 2), you need to set GIT_WORK_TREE appropriately:
"Administrar el sitio web usando git + enlace posterior a la recepción: error al enviar cambios"
See both techniques combined in "Git post-receive for multiple remote branches and work-trees":
#!/bin/bash while read oldrev newrev ref do branch=`echo $ref | cut -d/ -f3` if [ "master" == "$branch" ]; then git --work-tree=/path/under/root/dir/live-site/ checkout -f $branch echo 'Changes pushed live.' fi if [ "dev" == "$branch" ]; then git --work-tree=/path/under/root/dir/dev-site/ checkout -f $branch echo 'Changes pushed to dev.' fi done