我最近将一个仓库从SVN迁移到了Git。当我查看提交历史记录时,所有来自SVN的提交信息都没有按照50/72格式正确格式化。是否有一种方法可以遍历每个提交信息并将其编辑以符合Git格式?
我最近将一个仓库从SVN迁移到了Git。当我查看提交历史记录时,所有来自SVN的提交信息都没有按照50/72格式正确格式化。是否有一种方法可以遍历每个提交信息并将其编辑以符合Git格式?
您在评论中提到:
仓库已经在一周前迁移,现在有Git提交。
因此,最好的选择是接受事实并从现在开始制作正确的提交信息。
所有可以更改旧提交消息的方法都将更改提交,并创建具有不同ID的全新对象。因此,所有已经使用它工作的人的存储库会中断,要求他们手动重置为存储库的新的、重写后的状态。
这只会导致比起那些以前存在但不完美适应当前标准的提交消息做出调整需要更多的工作(和困惑)。如果以后决定更改代码格式规则,您也不会重写所有提交记录。
git filter-branch
。它的手册非常清晰。--msg-filter
选项,它期望一个将在stdin
上接收原始消息并应输出修改后的消息到stdout
的shell命令。创建一个修复消息格式的脚本是一个单独的问题 =)。git rebase -i --root
,将操作设置为reword
。这将遍历整个提交历史记录,为每个提交打开您的文本编辑器,让您更改提交消息。一种选择是在导入到git之前编辑svn中的提交。使用svnadmin dump
生成可供人类编辑的版本库,编辑提交消息(如果是我,我会编写一个Python脚本来完成此操作),然后使用svnadmin load
重新构建版本库。
svnadmin setlog
是更改存储库中日志消息的适当工具(无需dump文件)。 - alroc