git:如何将git notes添加的消息推送到中央git服务器?

Iow*_*owa 51 git

似乎没有关于git笔记的适当文档.我使用git notes add命令为其中一个提交添加了一些注释.但是当我推送提交,然后再做一个单独的克隆时,我没有看到那里的注释消息.有没有办法推动通过git notes命令添加的所有注释消息?

sim*_*ont 52

根据这里[git-scm.org],您可以使用

git push <remote> refs/notes/*
Run Code Online (Sandbox Code Playgroud)

推送所有笔记.可以用提取来完成

git fetch origin refs/notes/*:refs/notes/*
Run Code Online (Sandbox Code Playgroud)

  • 要在拉动时总是得到注释,可以在git config中将`fetch = + refs/notes/*:refs/notes/*`添加到远程原点部分. (17认同)
  • @ user2663585:是的,笔记是提交,但*不在他们指向*的分支上.问题是`git pull origin blah`意味着将'blah`合并到**当前分支**,即使blah是`refs/notes/commits`.因此,您将笔记合并到主分支中,而不是将它们留在它们所属的一侧. (5认同)
  • 如果遇到 `zsh: no matches found: refs/notes/*` 错误,请考虑引用参数:`git push origin 'refs/notes/*'` (5认同)
  • @Zitrax 导致 git 强制更新您的本地笔记,从而在您使用 `git fetch` 时覆盖任何本地添加的笔记。(当然可以用`git reflog notes/commits`恢复) (3认同)
  • 使此功能有些“起作用”的唯一方法是将它们放在另一个“名称空间”中(顺便说一下,这些名称空间是在f * ck处定义的吗?)_inside_ refs / notes,例如refs / notes / origin / (否则`git notes merge`不会做任何事情-甚至不会出错)。因此,请使用`git fetch origin refs / notes / *:refs / notes / origin / *`-然后将其与本地注释合并。 (2认同)
  • 要总是*push*notes将'push = + refs/notes/*:refs/notes/*`添加到Git配置中的远程原点部分. (2认同)