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

时间:2014-10-28 15:33:38

标签: git git-filter-branch git-notes

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

thread似乎提出了类似的问题,但在2011年没有解决方案。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

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

git config notes.rewriteRef refs/notes/commits

从文档中: https://git-scm.com/docs/git-notes#git-notes-notesrewriteRef

  

GIT_NOTES_REWRITE_REF

     

重写提交时,要复制哪些注释   原来的重写提交。必须是以冒号分隔的列表   refs或globs。

     

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

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

Is there a way to automatically merge notes if commits for those notes get squashed?