Как использовать команды bash для псевдонимов .gitconfig

Я использую команду git ls-tree -r $(git branch | awk '{ print $2 }') --name-only, чтобы показать файлы в моей ветке, но я попытался поместить эту команду в свой .gitconfig файл в качестве псевдонима и получил эту ошибку:

  $ git list
fatal: Not a valid object name $(git

Мой файл .gitconfig:

[alias]
list = ls-tree -r $(git branch | awk '{ print $2 }') --name-only

Спасибо П.Д. Извините за мой английский


person vretamal    schedule 08.11.2014    source источник
comment
Если расширение псевдонима предваряется восклицательным знаком, оно будет рассматриваться как команда оболочки.   -  person Andrew C    schedule 08.11.2014
comment
возможный дубликат Как встроить сценарий bash непосредственно в git псевдоним   -  person Andrew C    schedule 08.11.2014


Ответы (1)


Как уже указывалось в комментариях, вам необходимо поставить перед псевдонимом восклицательный знак (!).

Следующая запись работает для меня

[alias]
    list = !git ls-tree -r $(git branch | awk '{ print $2 }') --name-only

ИЗМЕНИТЬ

В качестве альтернативы, воспользовавшись помощью этого ответа, вы можете создать файл git-list в любом месте вашего PATH, как показано ниже:

git-list

git ls-tree -r $(git branch | awk '{ print $2 }') --name-only

затем измените его разрешение на исполняемый файл с помощью chmod +x git-list, и ваша команда git list может работать в любом каталоге.

person Anshul Goyal    schedule 08.11.2014
comment
Ответ на это затрудняет закрытие. Это дубликат, и основная логика плохая. - person Andrew C; 08.11.2014
comment
@AndrewC О, я не понимал, что это дубликат - не было закрытых голосов или комментариев такого рода. - person Anshul Goyal; 08.11.2014
comment
Я отвлекся между комментированием и голосованием за закрытие :) - person Andrew C; 08.11.2014