即时阅读裸仓库文件

时间:2016-07-20 11:59:52

标签: c# git git-bare

有没有办法阅读裸仓库的文件?例如,我想分析每个文件并从存储库中提取一些功能,但不在本地检出整个repo。

P.S:理想情况下,想要将C#用于此

谢谢

1 个答案:

答案 0 :(得分:1)

目前还不完全清楚您想要做什么,但有两种主要方法直接从裸存储库中提取数据:

  • 使用git cat-file -p提取对象数据。

    此方法简单易行,但有一个非明显的缺点:不会发生.gitattributes样式过滤。 (显而易见的缺点是,您必须使用操作系统例程在文件系统中查找对象,而无需在git cat-file 使用所有常用的git rev-parse规则,如果你知道分支的名称和文件的路径,你可以简单地git cat-file -p branch:path/to/file。)

  • 提供工作树。

    例如,git --work-tree=/some/where checkout branch即使在裸存储库中也可以工作:--work-tree提供工作树的顶级。这里的一个(或两个取决于你如何计算)非显而易见的缺点是检查特定提交会修改裸存储库的索引和HEAD(当前分支/提交)。索引本身可能会或可能不会以任何其他方式使用;如果不是,这不是问题,如果是,您可能想要使用备用索引(通过环境变量GIT_INDEX_FILE)。新HEAD操作隐式使用git clone(如果此特定裸克隆用作其他克隆的源)。