Git notes详细信息
我读过很多书,但仍然觉得它们晦涩难懂。到目前为止,我们了解到:Git notes详细信息,git,git-notes,Git,Git Notes,我读过很多书,但仍然觉得它们晦涩难懂。到目前为止,我们了解到: 创建(git notes add-m“a note”) 注释是有名称空间的 问题: notes似乎没有创建提交,因此如何对它们执行推送()?它下面的机制是什么?如果不是提交,那么在概念上什么是注释添加 在Github UI上哪里可以看到我的推送'注释 Github用户可以制作的内容与notes功能之间是否存在任何关系 如果Github评论是注释,我如何通过git log获取它们并在本地公司上查看它们 如果Github注释不是注释
- 创建(
)git notes add-m“a note”
- 注释是有名称空间的
推送
()?它下面的机制是什么?如果不是提交,那么在概念上什么是注释添加推送'注释
git log
获取它们并在本地公司上查看它们谢谢作为我人生的一部分,我在这里写了更多关于他们的文章 注释本身是存储在单独的ref文件(
refs/notes/commits
)中的blob,并由它们所指向的commit组织(因此git ls tree refs/notes/commits
)提供一个树对象(想想:目录和内容)其中,每个目录名都是它们指向的对象,每个值都是一个包含notes消息本身的blob
您可以在GitHub的JGit review树中看到Gerrit对review notes的使用(该树使用refs/notes/review
而不是refs/notes/commit
,但本质上完全相同),方法如下:
由于它也是一个ref,并且文件内容的增量与提交一起存储,因此您可以看到各个注释正在更改,例如:
注意,文件名显示为对象的路径;在上述情况下,de70…
是添加消息的提交,但提交的内容正在更改与此提交对应的文件3a/bf…
:
如果您在那里追踪到原始Gerrit来源的评论链接:
您可以看到审阅数据与notes元素的数据相对应
至于它们是否干净地合并—由于每个注释对应于每个提交,并且每个提交在更改后都是不可变的,并且注释提交是基于每个目录/文件的,因此您可以轻松地让不同提交的多个注释重叠,而无需担心合并冲突。但是,如果两个程序/进程更新了相同的提交注释,则可能存在合并问题,需要以与任何其他DVC合并相同的方式解决
一般来说,需要存储正交信息的程序应该使用自己的notes空间,就像Gerrit为
refs/notes/review
所做的那样。因此,如果您有refs/notes/program 1
和refs/notes/program 2
,您将永远不会遇到冲突。Al,非常感谢您提供全面的答案和文章。1) 我以前从未见过/tree/url(通常Github中的下拉列表只显示分支/标记项。如何从顶层导航到此树视图?2)您知道提交时notes和对等评论之间是否存在任何连接?我们可以提取同行的评论吗?/tree/view是默认的,当你点击一个分支/标签时,你就会得到它。顶层视图实际上是的别名。您可以通过将refs/notes/拉到本地存储库来向下拉笔记(根据我的区块)。对不起,Al,我的意思是refs
url。非树
urls@AlBluegihub是否可能已放弃对notes的支持?我看不到你们在答案中给出的例子所附的注释。例如,我在“notes”refspace中没有看到任何notes有不同的子目录,提交的默认子目录是refs/notes/commits
I crease()。Gerrit Review系统使用refs/notes/Review
,因此我不知道GitHub基于web的界面是否会看到它们,特别是因为我不知道refs/notes空间是否镜像到GitHub。然而,当我回答这个问题时,GitHub可能更新了他们的UI,不再显示它了……另请参阅以获取有关notes如何工作的具体说明。