Loading

Windows下git bash(及powershell)与tig常见问题的解决

最近用Windows比较多,说实话并不是很喜欢这个系统。

由于历史遗留问题,Windows中文默认gbk编码,这和Unix/Linux世界以及网络应用的utf8编码有很大的兼容问题。目前Windows似乎考虑迁移到utf8编码,在区域语言设置中加入了默认utf8的beta功能。但是如果你用了这个功能你会发现不但一些破旧不堪的软件会乱码,就连Windows自身都没做好迁移的准备。所以暂时还是使用Windows默认编码吧。

解决git bash和tig中文乱码:

  • 配置git
git config --global i18n.commitencoding utf-8       # 设置提交日志使用utf-8
git config --global i18n.logoutputencoding utf-8    # 设置输出日志时使用utf-8
git config --global core.quotepath false            # 不用双引号引用路径
  • 在~/.bashrc中添加编码设置
export LC_ALL=zh_CN.utf8
export LANG=zh_CN.utf8
export LESSCHARSET=utf-8  # 设置LESS字符集为utf-8

linux环境如果export LC_ALL=zh_CN.utf8报错,可尝试安装language-pack-zh-hans包:

sudo apt install -y language-pack-zh-hans
sudo update-locale LANG=zh_CN.UTF-8

上面是git bash,如果是powershell,设置字符集的方式为在profile文件中加入:

$env:LESSCHARSET="utf-8"

参考:解决windows git乱码问题

禁用bell

当你在git bash中用git diffgit log查看文件的时候,光标移动到头继续移动会听到Windows“噗噗噗噗--叮”的声音,很是烦人。可以这样禁用bell:

 git config --global core.pager 'less -q'

或者手动在~/.gitconfig中添加如下内容:

[core]
    pager = less -q

更新:

其实最好的方式还是使用WSL1中的git/tig代替git bash 、tig

WSL2其实是个虚拟机,使用ext4磁盘,不配置git忽略换行符的时候gst会提示Windows系统中所有文件都修改了。。。

WSL1默认使用umask进行了设置,不会有这个问题。

posted @ 2020-05-07 14:39  dylanchu  阅读(1475)  评论(0编辑  收藏  举报