Questão Como posso fazer o git entender a abreviação mais curta para um comando?


Como eu configuro o git para reconhecer o menor prefixo único de um comando, como o git faz com hashes SHA, ou como o mercurial faz?

por exemplo. git ad deve ser reconhecido como git addou git conf Como git config.

Obviamente eu poderia fazer isso adicionando um monte de aliases, mas isso é muito frágil em face de novos comandos, e também tedioso.

Existe alguma funcionalidade embutida para fazer isso, ou um plugin?

Eu já tenho uma integração satisfatória do editor de texto e não estou interessado em aliases.


2


origem




Respostas:


Bem, se você não quiser adicionar aliases, então a melhor abordagem que me vem à mente é apenas pressionar ABA após o comando. No exemplo:

  • git con + ABA vai resultar em git config.
  • git com + ABA vai resultar em git commit.
  • git ad + ABA vai resultar em git add.
  • etc.

PS: não, não existe essa funcionalidade embutida.


4





Parece que você está pedindo um novo recurso. O Git é de código aberto, para que você possa aprimorá-lo da maneira que desejar:

https://github.com/git/git

Você pode puxar o código fonte. Eu vejo que os comandos são definidos sob uma matriz chamada comandos [] inside git.c. E a correspondência parece ser feita dentro da seguinte função:

static struct cmd_struct *get_builtin(const char *s)
{
    int i;
    for (i = 0; i < ARRAY_SIZE(commands); i++) {
            struct cmd_struct *p = commands + i;
            if (!strcmp(s, p->cmd))
                    return p;
    }
    return NULL;
}

Você pode modificar a linha de strcmp () para fazer sua correspondência de prefixo mínimo. Eu acho que não deve demorar mais de 20 linhas de código.


3





Aqui está um bom artigo sobre como criar aliases para comandos do git.

http://githowto.com/aliases

Além disso, o seu editor de escolha pode ter integrado a integração do git. Aqui está um exemplo com sublime. Eu não acredito que existam plugins para modificar a estrutura de comando interna do git.

https://scotch.io/tutorials/using-git-inside-of-sublime-text-to-improve-workflow


0





"em face de novos comandos" - quais novos comandos? Na minha opinião, isso não acontece com muita frequência e, mesmo assim, provavelmente não é um comando que você vai usar com frequência.

Eu recomendo usar o Zsh com o oh-my-zsh Plugin Git. Oferece muitos aliases úteis.

É claro, você também pode copiar os aliases e usá-los no Bash, mas perderá os recursos agradáveis ​​de preenchimento automático. Além disso, você também precisa definir as funções auxiliares.


-1