首页 > 解决方案 > 以编程方式创建本地“.git”存储库

问题描述

问题:我有带有子文件夹/文件的根文件夹,我需要以编程方式在这个根文件夹中创建 git 存储库(不使用 git 工具)。一般结构应该很简单——新的 repo 和所有文件只有 1 次提交。

我试图找到.git文件夹的规范,但没有找到很好的解释如何在文件夹中编码和生成objects文件夹和index文件.git。你能指导我怎么做吗?

并发症:如果我解决了这个问题,还有 1 个额外的并发症 - 一些文件可能会被更改。例如,我在内存中有原始文件数据,我需要使用这个数据+文件路径。

谢谢 :)

标签: git.git-folder

解决方案


可以通过检查普通存储库的内容和格式并阅读网站上链接的 Pro Git 书籍来手动完成此操作,但我强烈建议您不要这样做。Git 存储库相当复杂,最好使用git二进制文件或 libgit2 的绑定(它具有多种语言的绑定)。

自己做会有创建损坏对象的风险,如果这样做,您的存储库通常将无法被推送到任何地方,因为大多数托管服务提供商拒绝格式错误的数据。您还将面临数据丢失的风险。

如果您不想使用 Git,libgit2 是一个不错的方法,但请注意,与 Git 二进制文件相比,它缺少一些功能(例如 SHA-256 存储库支持)。


推荐阅读