git 检查工作副本存储库是否存在并验证它

标签 git validation repository local working-copy

  1. 我正在寻找一种方法来测试 local 目录是否存在 git 存储库。
    我不想只通过 sh/bash 检查 .git 子目录存在,但如果有,则使用专用的 git 命令。

  2. 我想通过 git 命令验证在该本地 目录中可能找到的 git 存储库。

你知道任何 git 命令吗?

最佳答案

对于项目 1,使用 git rev-parse --is-inside-work-tree。这:

  • 如果您在 Git 存储库中但不在其工作树中(即在裸存储库中),则打印 false
  • 如果您在具有工作树的 Git 存储库中,则打印 true;或
  • 错误(打印fatal: not a git repository (or any parent up to... to stderr) if you are not in a Git repository.

但是请注意,如果您所在的 Git 存储库中的工作树已损坏或以某种方式被修改,Git 将在此处打印 true。如果您传递 --git-dir= 和有效存储库的路径,Git 总是 认为您在工作树中(因为您是)。如果打印出 truefalse,则此命令的退出状态为零,如果产生错误,则退出状态为非零。

对于第 2 项——“验证”存储库——这完全取决于你所说的“验证”是什么意思。

关于git 检查工作副本存储库是否存在并验证它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52654471/

相关文章:

html - 通过 git post-receive 将 styles.less 替换为 styles.css

git - 如何解决 TortoiseGit 中的已删除 merge 冲突?

java - Struts2 验证条件

java - validator 测试期间出现 NoSuchMethodError (javax.el 3.0.0)

dependencies - 如何将我的开源 Artifact 放入 Maven 存储库?

git - 分支一个非 merge 的功能分支?

eclipse - 项目 ""的目标位置已存在,无法移动项目

php - 如何修复 PHP 表单验证器错误?

mvvm - 使用IoC在 View 模型中创建NHibernate存储库

svn - 当 --quiet 时, checkout (co) svn 上的项目是否更快?