如何在内存中创建一个 git 存储库?

How to create a git repository in memory?

我目前正在开发一个抽认卡应用程序,其中用户创建的卡片组充当 Git 存储库。在应用程序中创建卡片时,会向存储库提交新文件,更改卡片时会更改文件,删除卡片时——好吧,你明白了。

应用程序保存的文件格式是 gzipped Git 存储库,因此我永远不需要将存储库写入磁盘。我怎样才能最好地以这种方式将套牌视为 Git 存储库?

看看库git2。它支持内存中 git 存储库场景,并且还绑定了多种语言:

https://libgit2.github.com

例如,通过使用 rugged,libgit2 的 ruby 绑定,您可以这样做:

a_backend = Rugged::InMemory::Backend.new(opt1: 'setting', opt2: 'setting')

repo = Rugged::Repository.init_at('repo_name', :bare, backend: a_backend)