我有一个git控制的目录(实际上是我的主目录),其中有一些忽略的目录(例如垃圾空间和由其他版本控制系统控制的目录)。我希望能够让我的bash提示显示一个目录是否受版本控制,如果是的话,是由哪个版本控制系统控制的,但例如
有没有办法询问git我是否在一个未跟踪的目录中?
我发现这个方法可行:
然而这种方法看起来很不专业且容易出错。有没有更好的方式?
git rev-parse
总是会找到最顶层的.git
目录。有没有办法询问git我是否在一个未跟踪的目录中?
我发现这个方法可行:
if ! git rev-parse 2>&/dev/null; then
echo "not in git"
else
PREFIX=$(git rev-parse --show-prefix)
if [ -z "$PREFIX" ]; then
echo "at git top level"
elif [ -z $(cd $(git rev-parse --show-toplevel); \
git ls-files -o --directory "${PREFIX%%/}")
echo "tracked by git"
else
echo "untracked"
fi
fi
然而这种方法看起来很不专业且容易出错。有没有更好的方式?
.gitignore
中的目录,因此它对它们有一些了解。 - ecatmur