Quero saber se existe uma maneira de definir um sinalizador por padrão para o comando git. Especificamente, desejo definir o --abbrev-commit
sinalizador para que, durante a execução git log
, eu queira executar git log --abbrev-commit
.
Ao contrário da pergunta " há alguma maneira de definir um sinalizador por padrão para um comando git? ", Aparentemente não há um sinalizador de configuração para adicionar --abbrev-commit ao git log. Além disso, o manual do git afirma que não posso criar um alias: "Para evitar confusão e problemas com o uso do script, os aliases que ocultam os comandos git existentes são ignorados"
Minha terceira opção é inventar um novo alias como glog=log --abbrev-commit
no meu arquivo .gitconfig. Mas prefiro não inventar meu próprio DSL com novos comandos.
Existe outra maneira de fazer isso para que o abbrev-commit
sinalizador seja definido por padrão?
Respostas:
Desde git versão 1.7.6, git config ganhou uma opção log.abbrevCommit que pode ser definida como true. Portanto, a resposta é atualizar para pelo menos 1.7.6 (o atual até o momento desta escrita é 1.7.11.4) e usar:
fonte
git config --help
ougit help config
para obter a documentação correspondente à sua instalação .Você pode usar um formato personalizado para
git log
imitar--abbrev-commit
por padrão:fonte
log.abbrevCommit
configuração afetou outros formatos mais detalhados, dos quais não gostei. Além disso, use%C(auto)%h %s
para obter o formato oneline normal com coloração automática. Useigit config --global format.pretty "%C(auto)%h %d %s"
porque queria decorar oneline como meu "padrão"Não existe um mecanismo genérico no git para definir argumentos padrão para comandos.
Você pode usar git aliases para definir um novo comando com os argumentos necessários:
Então você pode correr
git lg
.Alguns comandos também possuem definições de configuração para alterar seu comportamento.
fonte
git lg
masgit log
VonC já sugeriu um invólucro de shell em sua resposta; aqui está minha implementação Bash de tal wrapper. Se você colocar isto, por exemplo, em seu
.bashrc
, seu shell interativo suportará a substituição de comandos embutidos do Git, bem como apelidos em maiúsculas.Você pode então substituir
git log
colocando um script nomeadogit-log
em algum lugar no seu PATH:fonte
Eu tenho um problema semelhante (muitas das opções padrão para comandos Git são burras). Aqui está minha abordagem. Crie um script chamado 'grit' (ou qualquer outro) em seu caminho, da seguinte maneira:
Muito simples de ler e manter, caso você precise compartilhá-lo com não especialistas em Bash.
fonte
git
pela adição de uma primeira linha para obter o caminho do comando real:thegit=`/usr/bin/which git`
. E acrescentei uma opção para cancelar as substituições com um x antes do comando comogit x log ...
:if [ "$cmd" = "x" ]; then; $thegit $@
.Gosto do
git log --oneline
formato. Para obtê-lo como padrão, usegit config --global format.pretty oneline
Crédito: https://willi.am/blog/2015/02/19/customize-your-git-log-format/
fonte
Todos os utilitários que usamos (svn, maven, git, ...) são sempre encapsulados em um .bat (no Windows ou .sh no Unix), a fim de oferecer aos nossos desenvolvedores um diretório para adicionar ao seu caminho.
Se o git estiver encapsulado em um script wrapper, então ... tudo é possível.
Mas isso continua sendo uma solução vinculada à configuração do usuário, não vinculada ao Git em si ou ao repositório git.
fonte