2

Pro Gitで、Scott Chaconは、最後のコミットを示すものを含む、役立つ可能性のあるいくつかのエイリアスgit lastのいくつかの良い例を示しています。これは、:と同等ですlog -1 HEAD

git config --global alias.last 'log -1 HEAD'

次のように表示されます。

$ git last
commit 66938dae3329c7aebe598c2246a8e6af90d04646
Author: Josh Goebel <dreamer3@example.com>
Date:   Tue Aug 26 19:48:51 2008 +0800

    test for current head

Gitエイリアスコマンドに引数を渡すなど、スタックオーバーフローに関するいくつかの同様の質問を読みましたが、まだこれを理解できていません。

私が思いついた最善の方法は、.gitconfigファイルを次のように変更することでした。

[alias]
    last = log -1 HEAD
    mylast = "!sh -c 'echo /usr/local/bin/git last -$0 HEAD'"

次に、これをコマンドラインで実行すると、次のようになります。

$ git mylast 12

私はこれを手に入れます:

/usr/local/bin/git last -12 HEAD

それは実際に正しく見えます。しかし、前を削除するとecho、入力を待っているようにハングします。切り替え$0てみまし$1たが、それも役に立たなかったようです。

私は何が間違っているのですか?

git lastまた、数字なしで入力した場合、デフォルトで「1」になるように設定する方法はありますか?

4

1 に答える 1

3
last = !sh -c 'git log "-${1:-1}" HEAD' -

これは、変数が設定されていない場合に代用するシェルパラメータ補間のデフォルト構文を利用します。${var:-default}defaultvar

于 2012-03-05T04:11:34.550 に答える