外部コマンドが Git エイリアス経由で実行される場合、リポジトリの rood ディレクトリ (通常は .git/ がある場所) から実行されます。次の方法で確認できます。
$ cd /some/path/inside/repo
$ echo $(git -c alias.root='!pwd' root)
さて、エイリアスが実行された正確なパスを取得する方法はありますか?`
XY の問題の場合、私がやっていることは次のとおりです。シェル関数を起動するエイリアスが必要です。シェル関数は、ls-files などのいくつかの Git コマンドを実行します。呼び出されたパスでのみ機能する必要があるため、それを認識している必要があります。
パスを変更せず、呼び出された場所で正確に実行されるため、関数を実行するだけでうまく機能します。しかし、もう少しネイティブな動作が必要です。私が今持っているのは
git-add-specificname -opt -opt2 --long-option -- path1 path2
私が欲しいのは
git add-specificname -opt -opt2 --long-option -- path1 path2
Git ではパラメーターのエイリアスは許可されていないため、git add specificname...