首页 > 解决方案 > 检查文件是否存在于路径中的任何目录中,或者当前目录是否在 git 项目中

问题描述

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

到目前为止,我有一个可以工作的版本,但前提是.git文件实际上在当前目录中,所以只能在项目的根目录中。看起来像这样:

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

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

谢谢!

标签: bashgitshellzsh

解决方案


您不需要检查是否存在.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" 

推荐阅读