由于某些原因,我必须重写我的 git 存储库的整个历史来更改每个提交的 committer_id。但是,我或多或少地在每个提交上附加了一个注释,并且使用 git-filter-branch 更改 committer_id 将在逻辑上创建新的提交,而将注释留在后面。有没有办法将笔记复制到他们匹配的新提交中?
该线程似乎提出了类似的问题,但在 2011 年没有解决方案。
谢谢您的帮助!
由于某些原因,我必须重写我的 git 存储库的整个历史来更改每个提交的 committer_id。但是,我或多或少地在每个提交上附加了一个注释,并且使用 git-filter-branch 更改 committer_id 将在逻辑上创建新的提交,而将注释留在后面。有没有办法将笔记复制到他们匹配的新提交中?
该线程似乎提出了类似的问题,但在 2011 年没有解决方案。
谢谢您的帮助!
问题可能是 git-notes 需要一些额外的配置才能按照您想要的方式工作。你可能需要这个配置变量
git config notes.rewriteRef refs/notes/commits
从文档: https://git-scm.com/docs/git-notes#git-notes-notesrewriteRef:
GIT_NOTES_REWRITE_REF
重写提交时,将哪些注释从原始提交复制到重写的提交。必须是以冒号分隔的 ref 或 glob 列表。
如果未在环境中设置,则要复制的笔记列表取决于 notes.rewrite。和 notes.rewriteRef 设置。
基本上,Git 必须获得您的许可才能将原始提交中的注释转移到您正在重写的新提交中。您还可以查看此 Stackoverflow 线程以获得更长的解释: