Você pode estender e personalizar o git por meio de aliases de comando. Você também pode adicionar comandos totalmente novos.
Coloque qualquer executável com um nome como git-squash
no seu PATH
e o git o tornará automaticamente disponível como um subcomando.
Você pode então chamá-lo como qualquer outro git
comando.
$ git squash 3
O git
executável coloca precedência com seus próprios comandos ls $(git --exec-path)
, a variável de ambiente GIT EXEC PATH e o $(gitexecdir)
do git Makefile durante o tempo de construção / instalação, portanto, faça com que o nome do seu comando seja único. É assim que projetos como o git-flow estendem o git.
Acontece que git
fornece uma biblioteca de funções de shell expressamente para esse propósito, em $(git --exec-path)/git-sh-setup
. Use-o em seus próprios scripts de shell, como:
source "$(git --exec-path)/git-sh-setup"
Depois disso, você terá acesso a um punhado de funções do shell que executam ações úteis e verificações de integridade ou fornecem acesso a git
informações como métodos usage
e práticas die
.
Por exemplo:
git-squash
#!/bin/sh
source "$(git --exec-path)/git-sh-setup"
USAGE="COMMITS"
function _squash() {
if [[ $# == 1 ]]; then
if [[ -n $(git rev-parse --verify --quiet HEAD~$1) ]]; then
git rebase -i HEAD~$1
else
die "HEAD~$1 does not exist"
fi
else
usage
fi
}
_squash $1
Na verdade, muitos dos executáveis fornecidos com git
são apenas scripts de shell, como git bisect
e até git rebase
.