检查文件是否在路径中的任何目录中,或者当前目录是否在git项目中

时间:2018-07-11 00:33:44

标签: bash git shell zsh

我正在为我的.zshrc文件添加一个简短的命令,该命令将调用clearlsgit status。仅当当前目录是git项目的一部分时,才应调用git status命令。

到目前为止,我有一个可以使用的版本,但是仅当.git文件实际上在当前目录中时,才在项目的根目录中。看起来像这样:

alias cl="clear && ls && if [ -e .git ]
then
    git status
fi"

我想知道是否存在一种方法来检查当前目录的任何父目录中是否存在.git文件,或者是否还有另一种方法来完成此操作。

谢谢!

1 个答案:

答案 0 :(得分:5)

您不需要检查是否存在.git目录。 Git 已为您完成此操作。如果您想知道当前目录是否是git存储库的一部分,只需运行:

git rev-parse --is-inside-work-tree

退出代码将告诉您是否在git存储库中的目录中。这会使您的别名看起来像:

alias cl="clear && ls && if git rev-parse --is-inside-work-tree 2> /dev/null
then
  git status
fi"