Introdução
Git é uma ferramenta poderosa com muitos comandos e opções personalizáveis. Felizmente, para tornar nossas vidas mais fáceis, podemos criar aliases para simplificar esses comandos.
Neste post, explicarei como os aliases do Git funcionam e mostrarei os aliases que uso atualmente.
Escopos de configuração do Git
O Git tem 3 níveis de escopo de configuração. Os aliases são criados na configuração do git, então eles funcionarão no escopo em que foram criados.
Nome | Escopo | Arquivo de configuração |
---|---|---|
local | Aplica-se apenas ao repositório atual. | Unix:[repo]/.git/config Windows: [repo]\.git\config |
global | Aplica-se ao usuário atual. | Unix:~/gitconfig Windows: %USERPROFILE%\.gitconfig |
system | Aplica-se a todos os usuários do sistema. | Unix:/etc/gitconfig Windows: %PROGRAMDATA%\Git\config |
Aliases do Git
Aliases do Git são comandos personalizados que podemos criar no Git.
Podemos criar um alias usando o comando git config
ou editando o arquivo de configuração do git.
Criando um alias com o comando git config
Para criar um alias com o comando git config
, usamos a seguinte sintaxe:
git config --[<escopo>] alias.[<nome_do_alias>] "[<comando_git>]"
Por exemplo, para criar um alias c
para o comando checkout
no escopo global
, usamos:
git config --global alias.c "checkout"
Se o comando tiver aspas, podemos usar aspas simples em vez disso. Por exemplo:
git config --global alias.ec "commit --allow-empty -m 'Empty commit'"
Criando um alias no arquivo de configuração do git
Podemos criar aliases diretamente no arquivo de configuração do git. Consulte aqui para ver a localização do arquivo para cada escopo de configuração.
Basta adicionar o alias e o comando na seção alias
do arquivo. Se a seção não existir, basta criá-la.
|
|
Aliases complexos
O Git nos permite usar comandos shell em seus aliases. Quando iniciamos um alias com !
, podemos executar qualquer comando shell, permitindo-nos usar vários comandos com &&
ou |
.
Neste exemplo, defino uma função f()
que obtém todos os hashes de commit e os passa para o comando git grep
, além de receber um parâmetro de string para pesquisar nos arquivos:
git config --global alias.search "!f() { git rev-list --all | xargs git grep $1; }; f"
⚠️ Observe que precisamos usar o comando
git
nesses aliases porque estamos passando comandos shell gerais.
Meus aliases
Estes são os aliases que uso atualmente diariamente.
Alias | Comando | Como usar |
---|---|---|
c | checkout | git c develop |
f | fetch --prune | git f |
ec | commit --allow-empty -m 'Empty commit' | git ec |
graph | log --graph --oneline | git graph |
wp | worktree prune | git wp |
wa | !f() { git worktree prune && git worktree add $1 $2; }; f | git wa ../pasta nome-da-branch |
search | !f() { git rev-list --all | xargs git grep $1; }; f | git search palavra-chave |
mb | !f() { git branch --show-current | xargs git merge-base $1; }; f | git mb origin/main |
reset-to-base | !f() { git mb $1 | xargs git reset; }; f | git reset-to-base origin/main |
ℹ️ Alguns desses comandos são explicados neste post e neste post. Leia os posts para mais detalhes.
ℹ️
mb
ereset-to-base
são explicados neste post.