ログエイリアスを書き込もうとしています
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 の前後に '' を追加しません