使用git filter分支重写历史记录时保留git备注

Kip*_*aki 10 git git-filter-branch git-notes

出于某些原因,我必须重写我的git存储库的整个历史记录来更改每次提交的committer_id.但是,我附加了一个或多或少每个提交的注释,并使用git-filter-branch来更改committer_id将在逻辑上创建新的提交,留下注释.有没有办法将笔记复制到匹配的新提交中?

这个主题似乎提出了类似的问题,但在2011年没有解决方案.

谢谢您的帮助!

Jes*_*sen 4

问题可能是 git-notes 需要一些额外的配置才能按照您想要的方式工作。您可能需要这个配置变量

git config notes.rewriteRef refs/notes/commits
Run Code Online (Sandbox Code Playgroud)

来自文档: https ://git-scm.com/docs/git-notes#git-notes-notesrewriteRef :

GIT_NOTES_REWRITE_REF

重写提交时,注释从原始提交复制到重写的提交。必须是以冒号分隔的 refs 或 glob 列表。

如果没有在环境中设置,要复制的注释列表取决于notes.rewrite。和notes.rewriteRef设置。

基本上,Git 必须获得您的许可才能将原始提交中的注释转移到您正在重写的新提交中。您还可以查看此 Stackoverflow 线程以获得更长的解释:

如果这些笔记的提交被压缩,是否有办法自动合并笔记?