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、以上只是临时解决方案。

Git跨平台中文乱码临时解决方案的更多相关文章

  1. Win10命令提示符git log中文乱码的解决方案

    在系统环境变量中新建一个名为LESSCHARSET的变量 其值为utf-8 新建完毕后应用,git log就不会出现乱码的问题了^_^ 参考博文:git- win10 cmd git log 中文乱码 ...

  2. git log 中文乱码的解决方案

    设置 Git 支持 utf-8 编码在命令行下输入以下命令:$ git config --global core.quotepath false # 显示 status 编码$ git config ...

  3. [Git]2018-10 解决git cmd中文乱码问题

    2018年10月12日 莫名其妙出现cmd下git log中文乱码问题,显示一堆<E4><A8>之类的乱码.git bash却一切正常. 怀疑是Windows系统升级出现的不兼 ...

  4. windows下git bash中文乱码解决办法

    一.解决办法1:(直接上图) 1.在git bash下,右键 出现下图,选择options: 2.选择“Text” 3.将“Character set”设置为  UTF-8 转:windows下git ...

  5. Git Status 中文乱码解决

    现象: jb@H39:~/doc$ git statusOn branch masterYour branch is up-to-date with 'origin/master'. Untracke ...

  6. 【Git】windows上git命令中文乱码的问题

    windows上git命令中文乱码的问题解决 1.打开git bash快捷方式启动 2.右键 options 3.进入text选项卡,选中中文 和UTF-8 4.应用 测试[中文正常显示] 尝试打开文 ...

  7. 转:git windows中文 乱码问题解决汇总

    it的Windows版本Msysgit对中文的支持不够好 .当使用时,会出现以下三种情况的中文乱码: 下面的几个文件都在git安装目录下文件夹etc内.1.ls不能显示中文目录 解决办法:在git/g ...

  8. 使用Kettle抽取数据时,出现中文乱码问题解决方案

    使用Kettle在不同的数据库抽取数据时,有时会出现中文乱码问题:其解决方案如下: 1.查看数据库的字符集是否是UTF-8(最常用的字符集) 2.如果数据库设置正确仍然存在中文乱码,则可能是因为有的客 ...

  9. [原创]Gerrit中文乱码问题解决方案分享

    应开发同事的要求,部署了Gitlab+Gerrit+Jenkins的持续集成环境. 但是发现了一个问题,Gerrit登陆后有中文乱码出现. 具体情况如下: (1)Git代码中的中文乱码处理: 为妥善解 ...

随机推荐

  1. “_In_opt_z_”: 未声明的标识符

    问题 使用VS2010 + WDK 环境进行驱动开发时,编译阶段出现如下等错误提示 “_In_opt_z_”: 未声明的标识符 解决办法 将..\Microsoft Visual Studio 10. ...

  2. [LeetCode][Python]Largest Number

    # -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com'https://oj.leetcode.com/problems/largest ...

  3. 07.20 html5的适配flexible

    <script src="http://g.tbcdn.cn/mtb/lib-flexible/0.3.4/??flexible_css.js,flexible.js"> ...

  4. B树、B-树、B+树、B*树都是什么(转)

    B树        即二叉搜索树:        1.所有非叶子结点至多拥有两个儿子(Left和Right):        2.所有结点存储一个关键字:        3.非叶子结点的左指针指向小于 ...

  5. javaScript 工作必知(七) 对象继承

    对象继承inherit var o = { r: 1 }; var c = function f() { }; c.prototype = o; c.r = 3; alert(o.r);//被继承的属 ...

  6. Bower前端包管理器

    bower 前端包管理器 为什么要用它 一个新的web项目开始,我们总是很自然地去下载需要用到的js类库文件,比如jQuery.随着项目的进展,我们可能又需要Bootstrap3,其中每个框架之间的依 ...

  7. 一个解析url参数方法

    function getRequestParameter(a) { var b = document.location.search || document.location.hash; if (a ...

  8. C#将图片转化为黑白图片

    最近项目需要将上传的图片转化为黑白图片 在网上找了很多资料,测试通过,上代码 using System; using System.Collections.Generic; using System. ...

  9. MySQL中的insert ignore into, replace into等的一些用法小结(转)

    MySQL中的insert ignore into, replace into等的一些用法总结(转) 在MySQL中进行条件插入数据时,可能会用到以下语句,现小结一下.我们先建一个简单的表来作为测试: ...

  10. [非技术参考]C#重写ToString方法

    C# 中的每个类或结构都隐式继承 Object 类. 因此,C# 中的每个对象都会获得 ToString 方法,此方法返回该对象的字符串表示形式. 例如,所有 int 类型的变量都有一个 ToStri ...