閱讀721 返回首頁    go 人物


Git跨平台中文亂碼臨時解決方案

Git 是一個非常優秀的分布式版本控製係統,最初為Linux Kernel版本管理進行量身定做。優點是,和其他版本控製係統相比,穩定,速度快,跨平台,易學易用,無需要花費成本。更多優點請點擊閱讀:https://whygitisbetterthanx.com/

缺點也有點明顯,那就是由於該版本控製係統專門為Linux 內核定製,沒有開發其他平台的版本,因此,在其他平台上使用的都是Git的移植版本。在Windows上使用Git,通常是msysGit 和 TortoiseGit 進行組合使用。在Windows係統下Git的使用過程中,我們發現,如果出現以下情況之一,可能出現亂碼:

1、Log提交時使用中文注釋

2、目錄或者文件名含有中文

3、代碼中含有中文注釋

這些問題在跨平台使用的時候極為明顯,給跨平台代碼管理帶來極大的不便。本人也是深受其害,希望官方能夠早日開發跨平台的版本,解決掉亂碼問題。

經過本人實踐,總結了一套臨時解決方案,暫時能夠解決以上亂碼問題。具體操作如下:

注:由於Linux上通常使用utf-8進行編碼,因此,項目管理中統一使用utf-8進行編碼。

一、下載並安裝msysGit和TortoiseGit

msysGit :https://utf8-git-on-windows.googlecode.com/files/Git-1.7.3.2-utf8-20110213.exe

TortoiseGit:https://utf8-git-on-windows.googlecode.com/files/TortoiseGit-1.6.3.2-UTF8-32bit-20110127.msi

二、在Git\etc\git-completion.bash文件中添加:
alias ls='ls --show-control-chars --color=auto'
作用:使得在 Git Bash 中輸入 ls 命令,可以正常顯示中文文件名。

三、修改Git\etc\inputrc文件中的兩項配置:
set output-meta on
set convert-meta off

作用:使得在 Git Bash 中可以正常輸入中文,比如中文的 commit log。
四、在Git\etc\profile文件中添加:

export LESSCHARSET= utf-8
作用:$ git log命令不像其它vcs一樣,n條log從頭滾到底,它會恰當地停在第一頁,按space鍵再往後翻頁。這是通過將log送給less處理實現的。以上即是設置less的字符編碼,使得$ git log可以正常顯示中文。其實,它的值不一定要設置為 utf-8,比如latin1也可以……。還有個辦法是$ git --no-pager log,在選項裏禁止分頁,則無需設置上麵的選項。

五、在C:Gitetcgitconfig文件中修改或添加如下配置:
[core]
quotepath = false

作用:沒有這一條,$git status輸出中文會顯示為UNICODE編碼。


注:1、不管是在Windows還是在Linux下,請使用utf-8進行編碼,而不是GBK或者其他。

在Eclipse下的編碼設置請參考: 《Eclipse中設置編碼的方式

2、在進行版本管理時,盡量使用TortoiseGit和Git GUI,而不建議使用Git Bash。

3、以上隻是臨時解決方案。


參考文章:

1、msysGit的配置及中文支持  https://blog.sina.com.cn/s/blog_6a5e34ad0100w23u.html

2、msysGit 中文環境配置及跨平台開發注意事項 https://baifa.me/2010/10/msysgit.html

3、Git 係列之二:Windows 下 Git 客戶端的選擇,及 msysGit 各種中文問題的解決-轉載  https://www.cnblogs.com/baizx/archive/2010/08/09/1796120.html

4、 Git 中文亂碼問題  https://kongjian.baidu.com.cn/kazaff/blog/item/6a8384114cac7969cb80c42d.html

5、解決Msysgit的中文亂碼問題 https://surpass-li.iteye.com/blog/679989

最後更新:2017-04-02 06:52:02

  上一篇:go iscntrl <ctype.h> <cctype>
  下一篇:go ubuntu下的yuv播放器