我做了下面的合并Git笔记。
参考文献:http://vmiklos.hu/blog/git-notes-merge
我克隆了一个repo,在提交中添加了notes引用(参见/notes/提交)。当我推送它时,中央回购拒绝它,因为它是非快进的-因为已经有一个关于提交对象的参考/注释/提交。为了将远程Notes引用与本地Notes引用合并,
问题是,这是否是最好的方法?
在git便条手册页之后,我尝试了以下操作。
以上步骤显然对我有效。是否有一种方法可以使用git notes合并命令并合并Notes,而不是像第一个插图中所示的“分支方法”?对于我的用户来说,这个直接的命令会更有帮助。
发布于 2013-04-28 23:56:06
正如我在评论中提到的那样,第一种方法不适用于您的原因之一是您复制了错误的指令:您的第二步git fetch refs/notes/commits丢失了遥控器的名称。
关于使用git notes merge的第二种方法,您同样犯了从git fetch中丢失远程的错误。但是,即使有了这个固定的方法,我也很难让它正常工作,直到我终于意识到必须在合并之前从远程获取一个不同的ref名称空间,因为如果有冲突,它不会让您覆盖本地refs/notes/commits所指向的内容(尽管如果没有冲突,它将很高兴地将其快速转发)。
所以这对我来说很管用:
git fetch origin refs/notes/commits:refs/notes/origin/commits
git notes merge -v origin/commits如果有冲突,它现在将告诉您编辑.git/NOTES_MERGE_WORKTREE,然后通过git notes merge --commit提交结果,或者中止与git notes merge --abort的合并。
使用git notes merge而不是上面的URL中建议的技术的一个大缺点是合并不提供任何索引,因此您不能通过git mergetool等使用正常的合并工作流,另一个缺点是它不支持重基。因此,如果您预期会出现复杂的冲突或需要重新定位,那么我建议您使用git checkout refs/notes/commits方法。但是在简单的情况下,git notes merge可能更方便,因为您可以在工作树很脏的时候执行合并,而git checkout refs/notes/commits则要求它是干净的。
我非常肯定,git-notes(1)手册页面可以使这一切变得更加明显。也许我会找点时间提交补丁。然而,与此同时,我编写了一个新的git-rnotes,它使与远程存储库之间的注释共享变得更加容易。
https://stackoverflow.com/questions/12055303
复制相似问题