基本上,在我的.bash_profile中,我希望能够达到以下目的:
[[ __gitdir ]] && echo 'foo'
如果__gitdir为真且/或返回任何内容,我将回显foo。我已经尝试了一些东西,非常感谢任何帮助,谢谢!
答案 0 :(得分:2)
我想你想要
git rev-parse --show-toplevel &>/dev/null
虽然你的问题的措辞让我感到困惑。这将在Git repo中的任何位置运行时返回(返回0)并失败(否则返回非零),但不产生输出,因此适合与&&
链接或与if
一起使用。
请注意,这不会进入[[ ... ]]
测试,例如
git rev-parse --show-toplevel &>/dev/null && echo "$PWD is in a Git repo." || echo "$PWD is not in a Git repo."
将宣布当前工作目录是否在Git仓库中。
答案 1 :(得分:2)
此:
git rev-parse --quiet --git-dir
实际上,Git在git-sh.setup.sh中使用自己的shell脚本。
答案 2 :(得分:1)