Git:获取分支的所有注释

Git:获取分支的所有注释,git,git-notes,Git,Git Notes,我们想用git notes add注释我们的提交,这很好用。要获取包含注释的所有提交的列表,我们使用以下命令 git notes | cut -d' ' -f2 | xargs -ihash git log hash -1 现在我们只找一家分行的票据。我在这里不知所措,因为这些笔记对分行一无所知。可能有一种方法可以从git log开始,然后询问git notes是否有提交说明。但我敢肯定,对于大型存储库来说,这将是一个缓慢的过程 有什么想法吗?首先我想说: git log --pretty=f

我们想用git notes add注释我们的提交,这很好用。要获取包含注释的所有提交的列表,我们使用以下命令

git notes | cut -d' ' -f2 | xargs -ihash git log hash -1
现在我们只找一家分行的票据。我在这里不知所措,因为这些笔记对分行一无所知。可能有一种方法可以从
git log
开始,然后询问
git notes
是否有提交说明。但我敢肯定,对于大型存储库来说,这将是一个缓慢的过程


有什么想法吗?

首先我想说:

git log --pretty=format:"%H %N" --show-notes <branch>
git log--pretty=format:“%H%N”--显示注释
请参阅
git帮助日志
,了解您可以在格式字符串中添加的其他内容,以按照您希望的方式修复输出…

查找注释 显示主控台上具有注释的所有提交的所有缩写提交和注释:

git notes |\ 
  awk '{if (!system("git merge-base --is-ancestor "$2" master")) {print $2}}' |\
  xargs git show --abbrev-commit --oneline -s --notes
它是如何工作的

git notes
列出了note blob到目标提交的映射:

因此,您可以通过测试每个分支的成员资格来过滤流中的提交

但是,如果你有很多笔记,那么所有这些单独命令的成本都会增加

分行票据 将来,您可能希望在这里为不同的分支使用不同的注释引用。但是,我看不到将
core.notesRef
配置选项绑定到当前分支的方法,因此您必须

git notes --ref "my-branch-name" --edit
等等,但你可能

alias gn git notes --ref "$(git rev-parse --abbrev-ref HEAD)"
来解决这个问题

这不会按分支对当前笔记进行排序,但在将来会有所帮助

您需要为每一个配置
refs/notes/branchname“

branchname
如果您想共享它们,就可以获取并推送它们。

我看到您在命令中使用了“git log”,根据这个答案:,如果您将分支添加到??例如:“git log mybranch”?之后,可能(我不确定)会这样做??
alias gn git notes --ref "$(git rev-parse --abbrev-ref HEAD)"