我正在尝试cd
使用git rev-parse --show-toplevel
.
目前我将它作为我的别名.bashrc
,它工作正常:
alias gitroot='cd "$(git rev-parse --show-toplevel)"'
但我知道你可以使用 git 别名运行 shell 命令,所以我想我会将命令移到我.gitconfig
的文件中以使我的文件更干净一些。
问题是,我不知道为什么我的别名不起作用。目前我[alias]
在我的下面有这个.gitconfig
:
root = "!sh -c 'cd \"$(git rev-parse --show-toplevel)\"'"
但是当我运行时git root
,我只是停留在当前目录中。
我已经尝试过其他 shell 别名并且它们已经工作了,例如别名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。