2

ログエイリアスを書き込もうとしています

git config --global --replace-all alias.lol6 "! f() { echo "\$1"; git --no-pager log --oneline  --graph -15 \${@}; }; f"

次のように使用します。

git lol5 '@{-1}'
git log '@{-1}'  #works

しかし、git に渡される commit-ish は @-1 です

fatal: ambiguous argument '@-1': unknown revision or path not in the working tree

この記事を読んだ のですが、使い方がわかりませんでした

ありがとうボアズ

いくつかの詳細情報、@vonc アドバイスを試してみました

git config --global --replace-all alias.lol6 '! f() { echo "$1"; git --no-pager log --oneline  --graph -15 ${@}; }; f'

同じ結果が得られました。GIT_TRACE をオンにします

git lol6 @{-1}
20:20:37.454153 git.c:576               trace: exec: git-lol6 '@{-1}'
20:20:37.454153 run-command.c:640       trace: run_command: git-lol6 '@{-1}'
20:20:37.463150 run-command.c:640       trace: run_command: ' f() { echo "$1"; git --no-pager log --oneline  --graph -15 ${@}; }; f' '@{-1}'
@-1
22:20:37.607150 git.c:344               trace: built-in: git log --oneline --graph -15 @-1
fatal: ambiguous argument '@-1': unknown revision or path not in the working tree.

Git は最初の引数の周りに '' を追加しています

しかし!!!、試してみたら

git lol6 HEAD
20:30:35.621257 run-command.c:640       trace: run_command: ' f() { echo "$1"; git --no-pager log --oneline  --graph -15 ${@}; }; f' HEAD

Git は HEAD の前後に '' を追加しません

4

1 に答える 1