bash - 检查文件是否存在于路径中的任何目录中,或者当前目录是否在 git 项目中
问题描述
我正在向我的.zshrc
文件添加一个短命令,该命令将调用clear
、ls
和git status
. git status
仅当当前目录是 git 项目的一部分时,才应调用该命令。
到目前为止,我有一个可以工作的版本,但前提是.git
文件实际上在当前目录中,所以只能在项目的根目录中。看起来像这样:
alias cl="clear && ls && if [ -e .git ]
then
git status
fi"
我想知道是否有一种方法可以检查.git
当前目录的任何父目录中是否有文件,或者是否有另一种方法可以完成此操作。
谢谢!
解决方案
您不需要检查是否存在.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"
推荐阅读
- python - 冻结和优化 OpenCV 的 Tensorflow 2.3.0 ResNet 样模型
- android - 如何获取列表项并添加到房间数据库?
- c++ - Boost ASIO 中的拍卖
- python - 使用 QRectF 捕获事件
- angular - Angular 与 @angular/fire 冻结 Web 应用程序
- unity3d - 如何使用“LineRenderer”绘制多个圆
- r - 来自 R 中使命召唤 API 的 API 调用 - 身份验证问题
- android - 我可以将 Web RTC 应用程序注册为呼叫应用程序吗
- google-cloud-firestore - 云函数 http 函数在第一次运行时失败
- spring-boot - 如何在 Spring Boot 中使用 protobuff?