cómo procesar archivos en una rama en el gancho posterior a la recepción en git

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:

  1. Get hold of the branch on which code was received.
  2. 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

1 Respuestas

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

contestado el 23 de mayo de 17 a las 13:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.