git-如何将转换应用于所有过去的提交消息?

保罗

我正在尝试将项目导入启动板,但这失败并显示以下错误:

  File "/srv/importd.launchpad.net/production/launchpad-rev-17114/bzrplugins/git/fetch.py", line 119, in import_git_blob
    ie = cls(file_id, name.decode("utf-8"), parent_id)
  File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xca in position 0: invalid continuation byte

因此,我想知道如何在所有提交日志中搜索此“ 0xca”字符并将其删除?用QGit手动查看历史记录不会显示任何异常字符。

琼德里

您可能可以使用它git log --grep...来查找错误的提交并手动进行修复(不确定unicode是否可以使用--grep)。如果有太多无法手动修复的信息,或者您想使该过程自动化,请考虑git filter-branch --msg-filter <command>通过执行shell命令来使用来修改每个提交消息<command>这是一个使用的简单示例--msg-filter

   mkdir tmp
   cd tmp
   git init
   touch a
   git add .
   git ci -am 'first commit'
   touch b
   git add .
   git ci -am 'second commit'
   git log --oneline
   git filter-branch --msg-filter 'sed "s/^/hello /"'
   git log --oneline

请参阅此问题,以了解如何填充<command>将适当更改提交消息中的unicode的命令。

然后,您可以通过运行以下命令检查更改

diff <(git log original/refs/heads/<your-branch> --oneline | cut -d' ' -f 2-) <(git log <your-branch> --oneline | cut -d' ' -f 2-)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Git将更改应用于所有先前提交中的所有文件

如何将git diff应用于略有不同的仓库

如何将Git修补程序应用于具有不同名称和路径的文件?

将更改应用于 git commit 中的所有更改

git rebase <repo> <branch>如何将更改应用于本地

如何将更改从本地git repo应用于工作目录?

git request-pull:如何将git request-pull电子邮件应用于仓库

如何从特定提交打印/记录所有git commit消息?

修复Git中的所有提交消息

Git:如何将两次提交之间的所有提交压缩为一个提交

如何将重置按钮仅应用于每个选择而不是Mixitup中的所有过滤选项?

Git-如何将整个目录还原为特定的提交(删除所有添加的文件)

每次从master拉出后如何将本地更改应用于git repo而不推送到master

git-将另一个分支上的提交应用于工作副本

我过去如何提交Git提交?

如何将git补丁从将来的版本应用到过去的版本?

如何将所有合并的远程git分支转换为标签?(创建标签,删除分支)

过去提交的git status?

WPF-如何将转换器应用于所有DataGridTextColumn?

Git本地更改无意间应用于所有分支

Git:如何将相同的修改应用于另一个分支?

如何将相同的存储空间应用于git中的不同分支?

如何将AND应用于列表的所有元素?

如果中间还有其他提交,如何将所有git提交合并到一个提交中?

Git 如何压缩所有提交

Git:如何基于过去的特定提交?

Git:将更改应用于两个分支

将语义应用于自定义 git 流

Git Rebase尝试将更改应用于错误的文件