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進行了設置,不會有這個問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM