git提交中文信息报错

使用git一段时间了,还是会遇到一些问题,这里作一总结,后续有新问题了补充。

在提交信息中输入中文后出错

现象

add后commit,在vim中输入了中文提交信息,保存退出时出错,提示如下:

在这里插入图片描述

网上查了一些方法,不好用。于是自己琢磨了一下,测试好用。

分析

.git/COMMIT_EDITMSG是一个文件,每次提交时会自动生成。错误信息大意是转换失败,大概也就是中文转换时失败了。

使用file查看了.git/COMMIT_EDITMSG的文件类型,发现为非utf-8类型。对比了其他项目中能正常提交时的该文件类型,为utf-8。

于是,我怀疑是本地提交的文件类型有问题,检查了提交的所有文件的类型:

在这里插入图片描述

发现在一个子目录里有非utf-8格式的文件,其他文件都为utf-8。因为这几个文件是从Windows上拷贝过来的,忘记修改编码了。

于是把它们都修改为utf-8格式,再次提交就ok了。中文信息也能正常显示。

解决步骤

问题解决了,也就简单了。

  • 所有待提交文件的类型统一修改为utf-8(可借助编辑器,正常打开后,显示的编码为GB2312,另存为选择utf-8即可)
  • add后再次提交,输入中文信息,ok

此时查看 .git/COMMIT_EDITMSG的文件类型,也为utf-8了。

从Windows拷贝文件到linux后,经常会出现编码不一致的情况。此时,要先修改编码,另存后再修改文件内容,否则可能导致之前的中文内容全部乱码,再恢复就麻烦了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Linux 系统上,如果你克隆的 Git 仓库中包含中文文件,可能会出现编码问题。为了解决这个问题,你可以尝试以下几种方法: 1. 设置 Git 的文件名编码 可以通过设置 Git 的文件名编码来解决中文文件名乱码的问题。在终端中输入以下命令: ``` git config --global core.quotepath false ``` 这个命令会告诉 Git 在显示文件名时不要对其进行转义,从而避免中文文件名乱码的问题。 2. 设置 Linux 系统的语言环境 在 Linux 系统中,语言环境的设置可能会影响文件编码。你可以尝试在终端中输入以下命令: ``` export LANG="zh_CN.UTF-8" ``` 这个命令会将语言环境设置为中文 UTF-8 编码,从而解决中文文件名乱码的问题。 3. 使用 Git LFS 如果你的 Git 仓库中包含大型二进制文件,可以考虑使用 Git LFS 来管理这些文件。Git LFS 可以将这些文件存储在单独的服务器上,从而避免中文文件名乱码的问题。 综上所述,你可以尝试以上方法来解决中文文件名乱码的问题。如果问题仍然存在,你可以尝试在 Git 克隆命令中指定文件编码,例如: ``` git clone --config core.autocrlf=input --config core.safecrlf=false --config core.quotepath=false --config core.filemode=false -c core.eol=lf -c i18n.commitencoding=utf8 -c i18n.logoutputencoding=utf8 -c i18n.commitencoding=utf8 -c i18n.logoutputencoding=utf8 <git-repo-url> ``` 在这个命令中,我们指定了 Git 的文件编码、换行符、字符集编码等参数,从而尽可能地避免中文文件名乱码的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值