3

我正在尝试使用 git notes 来存储一些(小)数据块。我几乎让它工作了,但是当我尝试将数据提取到另一台机器时遇到了麻烦。

我正在使用git hash-object并将返回的哈希存储在便笺中。

git hash-object -w timestamp.signed.tsr | git notes --ref=timestamps add --file -

我可以使用Note to Self中概述的方法推送和获取包含哈希的笔记。

git push origin refs/notes/timestamps
git fetch origin refs/notes/*:refs/notes/*

但是,我不知道如何让 blob 对象与它一起使用。我相当确定我的 blob 对象没有被推到原点。我检查的方式是在推送一个注释之后0dd470d2fc5556de62d813537fd483aede2f6b35,它应该是一个 blob 对象的哈希,我用我的裸存储库去机器并寻找objects/0d/d470d2fc5556de62d813537fd483aede2f6b35. 由于它不存在,我认为它永远不会被推动。

是否有一些简单的事情我忽略了我需要这样做,以便 git 知道注释引用了 blob 对象?将数据直接存储在便笺中会更好吗?将数据进行base64编码并直接存储在便笺中会更好吗?

任何提示将不胜感激。

4

1 回答 1

3

注释可以包含任意数据,它们不是必需的,甚至不需要包含对其他对象的引用。出于这个原因,git 不会将注释内容解释为引用。由于您显示的命令不会创建对散列对象的引用,因此该对象不会被推送到不同的存储库。事实上,一旦对象变得足够老,它就有资格进行垃圾收集。

于 2012-12-03T15:31:15.800 回答