Meus aliases favoritos do Git

Não gosto de mudanças pendentes no meu espaço de trabalho. Eu gosto de me comprometer frequentemente. Como resultado, eu executo muitos comandos Git, o tempo todo. Os aliases do Git são mais do que apenas um “recurso interessante”. Eles são vitais para mim.

Curto e suave para operações de alta frequência

Se você faz algo com frequência suficiente, como várias vezes por minuto , é bom manter os apelidos curtos e agradáveis:

[alias]
st
= status
s
= status -sb
ci
= commit
co
= checkout
rev
= merge --no-ff --no-commit
br
= branch
ls
= ls-files
add = add -v

Descritivo para operações de baixa frequência / críticas / perigosas

Para operações menos frequentes, prefiro apelidos com nomes mais longos que se descrevam em alto e bom som, para que eu possa saber o que eles fazem sem adivinhar ou lembrar. Para evitar a digitação tediosa,
é crucial fazer o preenchimento com tab funcionar bem e usar um prefixo exclusivo para torná-lo mais fácil. (Às vezes, o preenchimento da guia “simplesmente funciona” fora da caixa, por exemplo no Git Bash no Windows, mas às vezes pode ser um pouco complicado, por exemplo no Mac OS X. )

Criação de solicitações de mesclagem / solicitações de pull

Após a conclusão de um branch de recurso, quero apenas enviar o branch atual e criá-lo com o mesmo nome no remoto e configurar o branch atual para rastrear esse branch remoto para possíveis envios adicionais.

mrequest = push -u origin HEAD

Excluindo ramos não utilizados

Quando você trabalha em branches de recursos de curta duração, eles tendem a se acumular e desordenar seu repositório. Este é um atalho preguiçoso e com perdas: ele tenta excluir todos os branches, se possível com segurança. Isso produzirá erros para branches que não foram totalmente mesclados em nenhum lugar, o que pode ser um bom lembrete de que “ei, ainda tenho esses branches para resolver …”

delete-unused-branches = "!f() { git branch | xargs git branch -d; }; f"

Comparando os commits entre branches

Às vezes, perco o controle de qual branch contém qual outro branch. Este atalho (uma ideia emprestada do Bazaar ) mostra as revisões únicas no branch atual e no branch especificado.

missing = "!f() { git rev-list ..$1 --oneline | sed -e '1 iOnly in other:'; git rev-list $1.. --oneline | sed -e '1 iOnly in HEAD:'; }; f"