Adicionando o nome do branch em todos os commits do git

*obs: testei isso rodando no Ubuntu 12.4, não tenho certeza se funciona no Mac e no Windows

Com este hook o nome do branch será colocado no começo de todos os commits do git

Por exemplo se fizer isso no branch [historia_1]

git commit -am "lala popo"

A mensagem gravada será "[historia_1] lala popo"

Segue o passo a passo de como configurar o git para isso:

- Se estiver usando o git acima da versão 1.7.1, é possível deixar o hook global deste jeito

git config --global init.templatedir '~/.git_template'

- Depois disso, criar o arquivo abaixo

~/.git_template/hooks/prepare-commit-msg

- Colocar o conteudo abaixo:

#!/bin/bash

FILE=$1

if [[ "$git_status" =~ On\ branch\ ([^[:space:]]+) ]]; then
    BRANCH_NAME=${BASH_REMATCH[1]}
    test "$branch" != master || branch=' '
else
    # Detached HEAD.  (branch=HEAD is a faster alternative.)
    BRANCH_NAME="`git describe --all --contains --abbrev=4 HEAD 2> /dev/null ||
        echo HEAD`"
fi

echo $1

if [ -n "$BRANCH_NAME" ] && [ "$BRANCH_NAME" != "master" ]; then
    sed -i.bak -e "1s/^/[$BRANCH_NAME] /" $FILE
fi

- Salvar o arquivo e colocar permissão chmod 755

A partir desse ponto, todos os repositórios clonados e inicializados terão este hook, para os já existentes, precisa rodar o comando git init que carregará o hook global.

3 comentários:

  1. Posso eu colocar isso para um repositório específico salvando isso em $GIT_DIR/hooks não?

    ResponderExcluir
  2. Este comentário foi removido pelo autor.

    ResponderExcluir