我正在创建一个工具,允许人们将“解决方案”存储到测试中。由于我不想重新发明版本控制,我决定使用git的tree / blob / object东西 - 我的想法是从当前工作目录中创建一个git树对象。
问题是我希望这个工具不要触及用户存储库的状态,除了当然要查找现有对象的哈希值。
我看过两者 mktree
和 write-tree
,以及前者的需求 ls-tree
输出和后者需要检查索引。这些都不是我想要的。
我很乐意深入研究并为工作树编写这些命令的类比,但是我无法找出任何较低级别的git工具来操作树,blob和对象。
理想情况下,用户将能够运行:
$ git create-tree .
并且git将吐出新创建的树对象的哈希值。