我最近从svn将存储库迁移到git。当我查看日志时,SVN的所有提交都没有以50/72格式正确格式化。有没有办法让我可以浏览每个提交消息并对其进行编辑,使其符合git格式?
答案 0 :(得分:8)
你在评论中说:
该存储库已在一周前迁移,并且已经在Git中对其进行了提交。
因此,最好的选择是简单地使用它,并从现在开始继续发出正确的提交消息。
所有会改变旧提交中的提交消息的方法都会更改提交并创建具有不同ID的全新对象。因此,已经使用它的每个人的存储库都会中断,要求他们手动重置为存储库的新的重写状态。
这结束了比从旧系统迁移的非完美提交消息的提交的微不足道的工作(和混乱!)。我认为,从前几天开始有一段古老的历史,完全不符合当前的标准,这是完美的。如果您以后决定更改代码格式规则,则不会重写所有提交。
答案 1 :(得分:2)
您需要git filter-branch
。这是man page很清楚。
使用--msg-filter
选项,该选项需要一个将在stdin
上接收原始邮件的shell命令,并应将已修改的邮件输出到stdout
。创建一个修复邮件格式的脚本是一个单独的问题=)。
如果您要手动修复它们,只需执行git rebase -i --root
,将操作设置为reword
。这将遍历整个提交历史记录,为每次提交打开文本编辑器,并允许您更改提交消息。
答案 2 :(得分:1)
一种选择是在导入到git之前在svn中编辑提交。使用svnadmin dump
生成一个人工可编辑的存储库版本,在那里编辑提交消息(如果是我,我会编写一个Python脚本来执行此操作),然后使用{{1}重建存储库}