Чтобы применить дополнительные параметры ко всему, кроме конца «командной строки» вашего псевдонима, вам нужно поместить команды оболочки в скрипт.Вы можете сделать это с помощью внешнего скрипта (например, ответ jdelStrother ), или вы можете сделать это с помощью встроенного скрипта оболочки.
Вы можете использовать -m
для подачи git commit
ваше новое сообщение или используйте параметр -C HEAD
/ --reuse-message=HEAD
, чтобы оно использовало существующее сообщение и автора (оно также будет повторно использовать метку времени автора, но вы сбрасываете ее с помощью --date=…
).Использование любого из этих параметров не позволит Git открыть редактор для вашего сообщения о коммите.
Вот он как «встроенный» скрипт оболочки:
git config --global alias.sync '!sh -c '\''git commit --amend --date=today ${1+-m} "${1---reuse-message=HEAD}" && git rebase master'\'' -'
Ядро этого маленького скриптапара расширений условных параметров:
${1+-m} "${1---reuse-message=HEAD}"
Когда вы вызываете его с дополнительным параметром (то есть вашим сообщением в журнале замены), они расширяются до двух слов оболочки: -m "<your new log message>"
.Когда вы не задаете дополнительный параметр, они расширяются до одного слова: "--reuse-message=HEAD"
.
Также важен завершающий тире;это может быть любое слово оболочки, дело в том, что что-то должно быть там, потому что оболочка будет использовать его для инициализации своего параметра $0
(который обычно имеет значение по умолчанию, поэтому он бесполезен для самого условного расширения).
Если я неправильно понял, и вы действительно хотите увидеть редактор, если вы не указали дополнительный параметр, тогда используйте одно расширение ${1+-m "$1"}
вместо пары расширений.