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

Hen*_*ody 0 git bash shell zsh

我正在加入一个简短的命令,以我的.zshrc文件,将调用clear,lsgit status.git status只有当前目录是git项目的一部分时,才应调用该命令.

到目前为止,我有一个可行的版本,但只有当.git文件实际位于当前目录中时,才会在项目的根目录中.看起来像这样:

alias cl="clear && ls && if [ -e .git ]
then
    git status
fi"
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法检查.git当前目录的任何父目录中是否有文件 - 或者是否有其他方法可以实现此目的.

谢谢!

lar*_*sks 5

您无需检查是否存在.git目录.Git 已经为你做了这个.如果您想知道当前目录是否是git存储库的一部分,只需运行:

git rev-parse --is-inside-work-tree
Run Code Online (Sandbox Code Playgroud)

退出代码将告诉您是否在作为git存储库一部分的目录中.这使你的别名看起来像:

alias cl="clear && ls && if git rev-parse --is-inside-work-tree 2> /dev/null
then
  git status
fi" 
Run Code Online (Sandbox Code Playgroud)