如何检查当前目录是否是Git存储库?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (44)

我正在为zsh中的Git管理编写一系列脚本。

如何检查当前目录是否是Git存储库?(当我不在Gitrepo中时,我不想执行一堆命令,得到一堆fatal: Not a git repository答复)。

提问于
用户回答回答于

从bash完成文件中复制以下是一种简单的方法

# Copyright (C) 2006,2007 Shawn O. Pearce <spearce@spearce.org>
# Conceptually based on gitcompletion (http://gitweb.hawaga.org.uk/).
# Distributed under the GNU General Public License, version 2.0.

if [ -d .git ]; then
  echo .git;
else
  git rev-parse --git-dir 2> /dev/null;
fi;

可以在函数中包装它,也可以在脚本中使用它。

浓缩成适合于bash或zsh的单线条件

[ -d .git ] || git rev-parse --git-dir > /dev/null 2>&1
用户回答回答于

可以使用:

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

如果在git repos工作树中,它将打印“true”。

注意,如果在gitrepo之外(并且不打印‘false’),它仍然将输出返回给STDERR。

扫码关注云+社区