Например, есть такой git-alias.
[alias]
root = "!pwd"
Его можно использовать в shell-скрипте:
echo `git root`
Я бы хотел выполнять его "от имени Git", но не регистрируя alias. Как-то так:
echo `git run "pwd"`
Возможно ли это?
Ответ
Это возможно с использованием параметра git -c. Перевод из man git
-c <имя>=<значение>
Передает команде параметр конфигурации. Предоставленное значение будет использовано вместо значения, имеющегося в файлах конфигурации (но никаких постоянных изменений конфигурации не произойдет). Требуется, чтобы <имя> было указано в том же формате, как и в конфигурационных файлах (вложенные ключи разделяются точками: foo.bar)
Обратите внимание, что знак = можно не использовать (git -c foo.bar ...). В таком случае значение переменной будет установлено в логическое true. Если указать = без значения (git -c foo.bar= ...), то переменной будет присвоено значение пустой строки.
Решение:
echo `git root`
например, так:
$ cd /tmp;
$ echo $(git -c alias.root='!pwd' root)
/tmp
обновление
echo `git run "pwd"`
можно, например, так:
echo $(git -c alias.run='!$1' run "pwd")
к слову
конструкция
$(команда)
как замена
`команда`
прописана в posix и потому является полностью переносимой, а ввиду её очевидного удобства (при вложенном использовании), имеет смысл именно ею и пользоваться.
Комментариев нет:
Отправить комментарий