我尝试将项目导入到启动板,但是这失败并显示错误:
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
所以我想知道如何搜索所有提交日志以及#34; 0xca" char并删除它?使用QGit手动查看历史记录并不会显示任何不合适的字符。
答案 0 :(得分:1)
您可以使用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
请参阅this question,了解如何使用适当改变提交消息中unicode的命令填写<command>
。
然后,您可以通过运行
来检查更改diff <(git log original/refs/heads/<your-branch> --oneline | cut -d' ' -f 2-) <(git log <your-branch> --oneline | cut -d' ' -f 2-)