有没有办法阅读裸仓库的文件?例如,我想分析每个文件并从存储库中提取一些功能,但不在本地检出整个repo。
P.S:理想情况下,想要将C#用于此
谢谢
答案 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
(如果此特定裸克隆用作其他克隆的源)。