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


免責聲明!

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



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