Как я могу установить псевдоним для "git last", который принимает число в качестве аргумента?
В Pro Git Скотт Чакон приводит несколько хороших примеров псевдонимов, которые могут быть полезны, в том числе тот, который показывает последний коммит: 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"?
1 ответ
last = !sh -c 'git log "-${1:-1}" HEAD' -
Это использует преимущества синтаксиса по умолчанию для интерполяции параметров оболочки, ${var:-default}
который заменяет default
если переменная var
не установлен.