繁体   English   中英

以编程方式创建本地“.git”存储库

[英]Create local ".git" repository programmatically

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

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

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

谢谢:)

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

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

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

我绝对建议只使用git init && git add -m "Initial commit". 但如果您坚持不使用git二进制文件,但拥有例如python版本 3,您可以按照https://wyag.thb.lt/的说明进行操作

基本上,您使用自制代码创建整个 git 存储库( .git目录)来创建提交、树对象和 blob 对象以及一些元数据文件。 您的自制存储库最终将比 git 自动执行的存储库更大,但它将与官方 git 二进制文件一起使用。

如果您也没有 python,则应在问题中包含完整的限制列表

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM