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

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

缺點也有點明顯,那就是因爲該版本控制系統專門爲Linux 內核定製,沒有開發其餘平臺的版本,所以,在其餘平臺上使用的都是Git的移植版本。在Windows上使用Git,一般是msysGit 和 TortoiseGit 進行組合使用。在Windows系統下Git的使用過程當中,咱們發現,若是出現如下狀況之一,可能出現亂碼:git

一、Log提交時使用中文註釋windows

二、目錄或者文件名含有中文bash

三、代碼中含有中文註釋less

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

通過本人實踐,總結了一套臨時解決方案,暫時可以解決以上亂碼問題。具體操做以下:ui

注:因爲Linux上一般使用utf-8進行編碼,所以,項目管理中統一使用utf-8進行編碼。google

1、下載並安裝msysGit和TortoiseGit編碼

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

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

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

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

做用:使得在 Git Bash 中能夠正常輸入中文,好比中文的 commit log。
4、在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,在選項裏禁止分頁,則無需設置上面的選項。

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

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

注:一、不論是在Windows仍是在Linux下,請使用utf-8進行編碼,而不是GBK或者其餘。

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

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

三、以上只是臨時解決方案。

相關文章
相關標籤/搜索