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"