1

ここで説明したのとほぼ同じことを試みましたが、同じ問題があります。

フォーマット付きの「git log」エイリアスの作成

もちろん、このトピックの解決策は機能します。

しかし、自分の git 関数を git 名前空間にグループ化する、つまり を実行したいとしましょうgit gl "some time ago"。しかし、.gitconfig で関数を直接定義しようとすると:

gl = "!f() { git log --all --pretty=format:'%h %cd %s (%an)' --since="$1"; }; f"

以前と同じエラーが発生しました - fatal: ambiguous argument ...lalala...

関数が .bash_profile で定義され、git エイリアスから呼び出された場合でも、同じことが起こります。

「グローバル」関数を使用することはそれほど大きな問題ではありませんが、知りたいのですが、なぜこれが起こるのですか? そして、.gitconfigでそのような関数を定義することはまったく可能ですか?

4

1 に答える 1

3

引用の問題です。

gitエイリアスで引用がどのように機能するかを適切に説明しているものは見たことがありませんが、これは機能します:

gl = "!f() { git log --all --pretty=format:'%h %cd %s (%an)' --since=\"$1\"; }; f"

つまり、バックスラッシュと二重引用符を使用して二重引用符を取得し、シェル エイリアスを通過させて、$1 を展開します。

次のように呼び出す必要があることに注意してください。

$ git gl "one year ago"

の代わりに$1を使用する場合は、次のよう$*に呼び出すことができます。

$ git gl one year ago

これはちょっと便利です。

于 2014-04-11T19:51:22.130 に答える