我读过这个和这个,但仍然认为他们是晦涩难懂.到目前为止了解:
git notes add -m "a note")问题:
push(例子)如何可能为他们?它下面的机制是什么?如果不是提交,概念上添加什么?push在Github UI上的'ed笔记?git log?谢谢
AlB*_*lue 11
我在这里写了更多关于它们的内容,作为本周系列的git技巧的一部分.
http://alblue.bandlem.com/2011/11/git-tip-of-week-git-notes.html
注释本身是blob,存储在一个单独的ref文件(refs/notes/commits)中,并由它们指向的提交组织(所以git ls-tree refs/notes/commits)给出一个树对象(想想:目录和内容),其中每个目录名称是他们指向的东西to和each值是包含notes消息本身的blob.
你可以在GitHub中看到Gerrit使用JGit评论树中的评论笔记(在GitHub中使用refs/notes/review而不是refs/notes/commit但基本上完全相同的原理):
https://github.com/eclipse/jgit/tree/refs/notes/review
由于它也是一个引用,并且文件内容的增量与提交一起存储,您可以看到各个注释被更改,例如:
https://github.com/eclipse/jgit/commit/de70108c883afe563a48352c05cdd440c25f58cc
请注意,文件名称显示为对象的路径; 在上面的例子中,de70...是添加消息的提交,但提交的内容正在更改3a/bf...与此提交对应的文件:
https://github.com/eclipse/jgit/commit/3abf35bc0fc7a1c130e8fec42083ffd21c342129
如果你追查那里的评论链接到原始的Gerrit来源:
https://git.eclipse.org/r/#/c/54632/
您会看到评论数据与notes元素的数据相对应.
至于它们是否干净地合并 - 因为每个注释对应于每个提交,并且每次提交在更改后都是不可变的,并且注释提交基于每个目录/文件,您可以轻松地为不同的提交重叠多个注释而不用担心合并冲突.但是,如果两个程序/进程更新相同的提交注释,则可能存在需要以与任何其他DVCS合并相同的方式解决的合并问题.
一般来说,需要存储正交信息的程序应该使用自己的笔记空间,就像Gerrit所做的那样refs/notes/review.所以,如果你有refs/notes/program1,refs/notes/program2你将永远不会发生碰撞.
| 归档时间: | 
 | 
| 查看次数: | 2808 次 | 
| 最近记录: |