Я пытаюсь определить псевдоним cd
me в корневом каталоге git с помощью git rev-parse --show-toplevel
.
В настоящее время я использую его как псевдоним в .bashrc
, который отлично работает:
alias gitroot='cd "$(git rev-parse --show-toplevel)"'
Но я знаю, что вы можете запускать команды оболочки с помощью псевдонимов git, поэтому я подумал, что переместил команду в мой .gitconfig
, чтобы сделать мои файлы немного более чистыми.
Проблема в том, что я не могу понять, почему мой псевдоним не работает. В настоящее время у меня это под [alias]
в моем .gitconfig
:
root = "!sh -c 'cd \"$(git rev-parse --show-toplevel)\"'"
Но когда я запускаю git root
, я просто остаюсь в текущем каталоге.
Я экспериментировал с другими псевдонимами оболочки, и они работали, например. псевдоним say = "!sh -c 'echo \"$0\"'"
работает просто отлично:
$ git say hello
hello
Хотя я заметил, что сбой аналогичной команды cd
(cd = "!sh -c 'cd \"$0\"'"
):
~/repos/myproject$ git cd /home/
~/repos/myproject$
Я не могу понять, связано ли это с моим синтаксисом или причудой алиасов git, что он не поддерживает команду cd
или что-то еще полностью.
Если это помогает, я использую git 1.7.9.5.