3

Как я могу настроить git для распознавания кратчайшего уникального префикса команды, как git делает с хэшами SHA или как mercurial?

например, git ad должен распознаваться как git add , или git conf как git config .

Понятно, что я мог бы сделать это, добавив несколько псевдонимов, но это слишком хрупко перед лицом новых команд, но и утомительно.

Есть ли встроенный функционал для этого или плагин?

У меня уже есть удовлетворительная интеграция с текстовым редактором, и мне не нужны псевдонимы.

4 ответа4

4

Ну, если вы не хотите добавлять псевдонимы, то лучший подход, который приходит мне в голову, это просто нажать TAB после команды. В примере:

  • git con + TAB приведет к git config .
  • git com + TAB приведет к git commit .
  • git ad + TAB приведет к git add .
  • и т.п.

PS: нет, такой встроенной функциональности нет.

3

Похоже, вы просите новую функцию. Git с открытым исходным кодом, так что вы можете улучшить его в любом случае:

https://github.com/git/git

Вы можете вытащить исходный код. Я вижу, что команды определены в массиве с именем commands [] внутри git.c. И сопоставление выполняется внутри следующей функции:

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;
}

Вы можете изменить строку strcmp(), чтобы соответствовать минимальному префиксу. Я думаю, что это не должно занимать более 20 строк кода.

0

Вот хорошая статья о создании псевдонимов для команд git.

http://githowto.com/aliases

Кроме того, ваш выбранный редактор может иметь встроенную интеграцию с git. Вот пример с возвышенным. Я не верю, что есть какие-либо плагины для изменения встроенной структуры команд git.

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

-1

"перед лицом новых команд" - какие новые команды? По моему мнению, это случается не очень часто, и даже тогда, вероятно, вы не будете часто использовать команду.

Я бы порекомендовал использовать Zsh с плагином oh-my-zsh Git. Он предлагает много полезных псевдонимов.

Конечно, вы также можете просто скопировать псевдонимы и использовать их в Bash, но вы потеряете хорошие функции автозаполнения. Также вы должны убедиться, что также определены вспомогательные функции.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .