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

轉自  http://blog.csdn.net/yang_hui1986527/article/details/6891319


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

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

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

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

3、代碼中含有中文註釋

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

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

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

一、下載並安裝msysGit和TortoiseGit

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

TortoiseGit:http://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的配置及中文支持  http://blog.sina.com.cn/s/blog_6a5e34ad0100w23u.html

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

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

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

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


發佈了39 篇原創文章 · 獲贊 1 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章