Como estender o git

O git é uma ferramenta extremamente flexível e muito simples de se estender e criar funcionalidades. Para criar comandos basta criar um executável com o nome git-comando (git traço seguido pelo nome do comando). 

Qualquer executável acessível no PATH com esse padrão de nome vai ser chamado pelo git. Para começar com um exemplo simplesi, vamos para o tradicional “hello world”, salve o exemplo abaixo com o nome git-hello em um diretório no PATH.

#!/bin/sh
w="world"
if [ $# -gt 0 ]
    then
        w=$1
fi
echo "Hello, $w"

Agora teste o comando “git hello” no terminal, e “git hello seu_nome”.

O git vai priorizar seus próprios comandos, então, é uma boa ideia que o comando que você criar tenha um bom nome único.

Para ajudar no desenvolvimento de extensões, o git tem uma biblioteca de funções úteis que podem ser vistas na manpage em man git-sh-setup. Na verdade, vários comandos do git são apenas shell scripts e várias ferramentas como “git flow” são implementadas assim.

Um script mais útil que o “hello world” é o git-page que abre a página do GitHub do repositório.

#!/bin/sh
open $(git config remote.origin.url |
    sed "s/git@\(.*\):\(.*\).git/https:\/\/\1\/\2/")

Com isso é possível estender muito as funcionalidades do git, muito útil para automatizar trabalhos repetitivos na manutenção do repositório.

Cesar Gimenes