【问题标题】:Executing git commands on a bare repository在裸存储库上执行 git 命令
【发布时间】:2012-07-07 19:02:32
【问题描述】:

在我的服务器上,我托管了一些我正在处理的裸 git 存储库。我想在我的网站上显示有关每个存储库的一些基本统计信息;现在,假设我想做一些简单的事情,比如列出存储库中的所有文件。在非裸 git 存储库上,可以使用

git ls-files

但是对于裸存储库,这(和大多数其他 git 命令)不起作用。我确定可能有一种简单的方法可以执行此特定命令,但我可能想为不同的存储库显示一些复杂/项目特定的统计信息,所以我真的在问是否有办法执行任何/所有 git裸存储库上的命令,而不必进行临时克隆或类似的复杂操作。我怀疑我需要设置一些命令参数,但我还没有弄清楚是哪一个。

【问题讨论】:

  • 我不认为 gitweb 做了我可能想要跟踪的所有事情;我希望将来我会想要一些相当具体的统计信息,例如“显示用户 X 完成的所有提交,其消息包含日期 Z 之前的字符串 Y”所以我可能不得不编写脚本来处理它我自己,这需要裸仓库不做的命令。
  • 另一个让我无法工作的命令是 git blame,但this SO question 回答了它。

标签: git git-bare


【解决方案1】:

你可以运行这个:

git ls-tree -r HEAD --name-only

显然您必须指定分支或引用,因为在裸存储库中没有工作树或索引。

我不知道其他命令,但实际上您可以在裸存储库中执行大部分命令,但那些需要工作树的命令。

【讨论】:

    猜你喜欢
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-29
    • 2016-12-16
    • 2014-08-03
    • 2014-11-12
    • 1970-01-01
    相关资源
    最近更新 更多