是否有一种方法可以将数据流式传输到GIT而不是传入文件名?
本文关键字:GIT 传输 文件名 数据流 一种 方法 是否 | 更新日期: 2023-09-27 18:09:17
我们希望将文件系统中不存在的文档(它们在数据库中)流式传输到GIT中。因为有成千上万的文档,我们不想在磁盘上创建它们。
我们知道我们可以使用GIT Blob类从GIT流出文档。
我们希望实用地提供tree/path和filename以及其他属性,但是该文件实际上并不存在。GIT本身在某个时刻(当它读取文件时)将数据流到自己,并以某种方式存储文件属性数据。
我知道如何在GIT中添加文件,我想使用流代替接口。
这是可能使用C, c#或Java吗?
您可以使用hash-object
gitid=$(echo hello world | git hash-object -w --stdin)
这将根据echo
命令的输出将gitid
设置为新的blob对象的git id。
你可以使用git update-index
添加索引条目使用这个blob和commit
在你的git存储库中创建一个包含新blob的提交对象。
git update-index --add --cacheinfo 100644 "$gitid" new-blob.txt
git commit -m "new commit"
您也可以"手工"创建对象,从代码中创建对象和树。这是GitHub的Tom Preston-Werner描述结构的视频:http://sea.ucar.edu/event/unlocking-secrets-git我不知道这是否适合你,但这是一个选项