13

エイリアスを使用するときに完全なコマンドを表示するオプションはありますか?

例:

$ git ci -m "initial commit"
Full command: git commit -m "initial commit"
...
$ git lg
Full command: git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
...

エイリアスは非常に便利ですが、自分のエイリアスが実際に何をしているのかを知りたい/思い出すのが好きです (ほとんどのエイリアスはインターネットからコピーされたものです)

4

4 に答える 4

3

別のオプションは、エイリアスのGitwikiセクションにリストされているコマンドのアイデアaliasです。.git/config

[alias]

    aliases = !git config --get-regexp 'alias.*' | colrm 1 6 | sed 's/[ ]/ = /'

これにより、すべてのエイリアスがコマンドラインとして一覧表示されます。

于 2012-06-21T16:39:14.933 に答える
2

例として:

log-1 = "!sh -c 'echo \"Full command: git log --graph --decorate --pretty=oneline --abbrev-commit\"; git log --graph --decorate --pretty=oneline --abbrev-commit' -"

シェルを呼び出して、指定されたコマンドを実行します。

あなたのlgの例では、エスケープする必要があるクォートと文字の中に引用符があるため、多くのエスケープを行う必要があります。独自のきれいなフォーマットを作成し、それをエイリアスで使用することをお勧めします。あなたのフォーマットを私のものと呼ぶとしましょう。これはあなたがする必要があることです:

git config --add pretty.mine "%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%C(bold blue)<%an>%Creset"

エイリアスは次のようになります

lg = "!sh -c 'echo \"Full command: git log --graph --pretty=mine --abbrev-commit --date=relative\"; git log --graph --pretty=mine --abbrev-commit --date=relative' -"

于 2012-06-21T13:26:07.683 に答える
0

bashを使用している場合は、エイリアスに「set-x」を追加できます。したがって、簡単な例として、エイリアスがある場合:

ol = !sh -c 'git log --oneline'

次のように変更します。

ol = "!sh -c 'set -x; git log --oneline'"

セミコロンがあるため、二重引用符が必要です。

コマンドラインの残りの部分を許可するには、「$ @」を追加し、引数が$1から始まるように「-」を追加します。これはあなたに与えます:

ol = "!sh -c 'set -x; git log --oneline $@' -"

より複雑なエイリアスには、おそらくこのようなものがすでに含まれています。

すべてのエイリアスに対してこれをグローバルに設定する方法はわかりませんが、持っていれば便利です。

編集:これは実際には、代わりにシェル関数を使用すると少し簡単に機能します。あなたは次のようなことをすることができます:

git config alias.ol '!f() { set -x; git log --oneline $@; }; f'

上記と同じ効果を得るには。

于 2012-06-21T14:14:55.123 に答える