コマンドの最短の一意の略語をgitに理解させるにはどうすればよいですか?


3

gitがSHAハッシュを使用して、またはmercurialが使用するように、コマンドの最短の一意のプレフィックスを認識するようにgitを構成するにはどうすればよいですか?

たとえば、またはとしてgit ad認識される必要があります。git addgit confgit config

たくさんのエイリアスを追加することでこれを行うことができるのは明らかですが、それは新しいコマンドに直面すると非常に脆く、退屈でもあります。

これを行うための組み込み機能やプラグインはありますか?

既にテキストエディターの統合は満足のいくものであり、エイリアスには興味がありません。

回答:


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

ソースコードをプルできます。コマンドは、git.c内のcommands []という配列の下で定義されていることがわかります。そして、マッチングは次の関数内で行われているようです:

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行以上のコードは必要ないと思います。


コメントする既存の機能リクエストはありますか?git stash lリストのようなサブコマンドをサポートする、より一般的なものになることを願っています。オプションで有効にできます。
ジョシュアゴールドバーグ


-1

「新しいコマンドに直面して」—どの新しいコマンドですか?私の意見では、それはあまり頻繁に起こることではなく、それでもあなたが頻繁に使用するコマンドではないでしょう。

Gsh oh-my-zshプラグインでZshを使用することをお勧めします。多くの便利なエイリアスを提供します

もちろん、エイリアスをコピーして貼り付けてBashで使用することもできますが、素晴らしい自動補完機能は失われます。また、ヘルパー関数も必ず定義する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.