测试当前回购是否在Bash中的Git下

时间:2014-05-07 01:55:00

标签: git bash

基本上,在我的.bash_profile中,我希望能够达到以下目的:

[[ __gitdir ]] && echo 'foo'

如果__gitdir为真且/或返回任何内容,我将回显foo。我已经尝试了一些东西,非常感谢任何帮助,谢谢!

3 个答案:

答案 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)

我就是这样做的。不完全,但它已经为我工作了一段时间

if [ -d .git ]

Example