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”
  • 注释是有名称空间的
问题:

  • notes似乎没有创建提交,因此如何对它们执行
    推送
    ()?它下面的机制是什么?如果不是提交,那么在概念上什么是注释添加
  • 在Github UI上哪里可以看到我的
    推送
    '注释
  • Github用户可以制作的内容与notes功能之间是否存在任何关系
  • 如果Github评论是注释,我如何通过
    git log
    获取它们并在本地公司上查看它们
  • 如果Github注释不是注释,它们是什么,是否可以获取它们
  • 票据可以合并吗?怎么做
  • 对于已编辑的笔记,是否有解决冲突的注意事项
  • 笔记还有其他问题/困难吗

  • 谢谢

    作为我人生的一部分,我在这里写了更多关于他们的文章

    注释本身是存储在单独的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如何工作的具体说明。