Вопрос: Как я могу заставить git понять кратчайшую уникальную аббревиатуру для команды?


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

например git ad следует признать git add, или git conf в виде git config,

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

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

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


2
2018-03-30 11:00


Источник




Ответы:


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

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

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


4
2018-05-13 16:17





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

https://github.com/git/git

Вы можете извлечь исходный код. Я вижу, что команды определены в массиве с именами команд [] внутри 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 строк кода.


3
2018-05-13 16:57





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

http://githowto.com/aliases

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

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


0
2018-05-12 16:38





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

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

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


-1
2018-03-30 12:33