发布于 2014-11-24 14:09:48 | 1197 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

msysGit Windows下Git客户端

msysgit是 Git 版本控制系统在 Windows 下的版本。msysGit集成了所需要的运行环境和组件,直接安装安装即可使用,官方自带简体中文GUI,菜单也能配置Git。msysGit配合TortoiseGit在Windows中使用Git,是初学者的最好的组合!


本文为大家讲解的是在Windows 下安装和使用Git客户端msysGit,包括安装,配置,和使用方法及对中文的支持,感兴趣的同学参考下。

msysGit简介

msysgit是 Git 版本控制系统在 Windows 下的版本。msysGit集成了所需要的运行环境和组件,直接安装安装即可使用,官方自带简体中文GUI,菜单也能配置Git。msysGit配合TortoiseGit在Windows中使用Git,是初学者的最好的组合!

msysGit 名字前面的四个字母来源于 MSYS 项目。MSYS 项目源自于 MinGW(Minimalist GNU for Windows,最简GNU工具集),通过增加一个 bash 提供的shell 环境及其他相关的工具软件组成了一个最简系统(Minimal SYStem),简称 MSYS。利用 MinGW 提供的工具和 Git 针对 MinGW 的一个分支版本,在 Windows 平台为 Git 编译出一个原生应用,结合 MSYS 就组成了 msysGit。

安装 msysGit

安装 msysGit 非常简单,访问 msysGit 的项目主页(http://code.google.com/p/msysgit/), 下载 msysGit。最简单的方式是下载名为 Git-<VERSION>-preview<DATE>.exe 的软件包,如Git-1.7.3.1-preview20101002.exe 。如果您有时间和耐心,想观察 Git 是如何在 Windows 上被编译为原生应用的,也可以下载带msysGit-fullinstall-前缀的软件包。

点击安装程序(如 Git-1.7.3.1-preview20101002.exe )开始安装,如图3-18所示。

 
(点击查看大图)图3-18 启动 msysGit 安装

默认安装到 C:\Program Files\Git 目录中,如图3-19所示。

在安装过程中会询问是否修改环境变量,如图3-20所示。默认选择“Use Git Bash Only”,即只在 msysGit 提供的 shell 环境(类似 Cygwin)中使用 Git,不修改环境变量。注意,如果选择最后一项,会将 msysGit 所有的可执行程序全部加入 Windows 的 PATH 路径中,有的命令会覆盖 Windows 相同文件名的程序(如find.exe和sort.exe)。而且,如果选择最后一项,还会为 Windows 添加 HOME 环境变量,如果安装有 Cygwin,Cygwin 就会受到 msysGit 引入的 HOME 环境变量的影响(参见前面 3.3.3 节的相关讨论)。

 
(点击查看大图)图3-19 选择 msysGit 的安装目录
 
(点击查看大图)图3-20 是否修改系统的环境变量

还会询问换行符的转换方式,使用默认设置就可以了,如图3-21所示。关于换行符转换的内容,请参见本书第8篇的相关章节。

 
(点击查看大图)图3-21 换行符转换方式

根据提示完成 msysGit 的安装。

msysGit 的配置和使用

完成 msysGit 的安装后,点击 Git Bash 图标,启动 msysGit,如图3-22。会发现 Git Bash 的界面和 Cygwin 的非常相像。

 
(点击查看大图)图3-22 启动 Git Bash

1. 如何访问 Windows 的盘符

在 msysGit 下访问 Windows 的各个盘符要比 Cygwin 简单,直接通过“/c”即可访问 Windows 的C盘,用“/d”即可访问 Windows 的D盘。

$ ls -ld /c/Windows  

drwxr-xr-x  233 jiangxin Administ        0 Jan 31 00:44 /c/Windows 

msysGit 的根目录实际上就是 msysGit 的安装目录,如“C:\Program Files\Git”。

2. 命令行补齐和忽略文件大小写

msysGit 默认已经安装并启用了 Git 的命令行补齐功能,是通过在文件 /etc/profile 中加载相应的脚本实现的。

. /etc/git-completion.bash 

msysGit还支持在命令行补齐时忽略文件名的大小写,这是因为 msysGit 已经在配置文件/etc/inputrc中包含了下列的设置:

set completion-ignore-case on 

msysGit中shell环境的中文支持

在介绍 Cygwin时曾经提到过,msysGit 的 shell 环境的中文支持情况与老版本的 Cygwin类似,需要配置才能够录入中文和显示中文。

1. 中文录入问题

默认安装的 msysGit 的 shell 环境中无法输入中文。为了能在 shell 界面中输入中文,需要修改配置文件 /etc/inputrc ,增加或修改相关的配置如下:

# disable/enable 8bit input  

set meta-flag on  

set input-meta on  

set output-meta on  

set convert-meta off 

关闭 Git Bash 再重启,就可以在 msysGit 的 shell 环境中输入中文了。

$ echo 您好  

您好 

2. 分页器中文输出问题

对 /etc/inputrc 进行正确的配置之后就能够在 shell 环境下输入中文了,但是执行下面的命令时会显示乱码。这显然是 less 分页器命令导致的问题。

$ echo 您好 | less  

<C4><FA><BA><C3> 

通过管道符调用分页器命令 less 后,原本的中文输出变成了乱码显示。因为 Git 使用了大量的 less 命令作为分页器,这导致 Git 的很多命令的输出都出现了中文乱码的问题。之所以less命令会导致出现乱码,是因为该命令没有把中文当作正常的字符,可以通过设置 LESSCHARSET 环境变量将 UTF-8 编码字符视为正常的字符,于是中文就能正常显示了。下面的操作可以使 less 分页器中的中文正常显示:

$ export LESSCHARSET=utf-8  

$ echo 您好 | less  

您好 

编辑配置文件 /etc/profile ,将对环境变量 LESSCHARSET 的设置加入其中,以便 于msysGit 的 shell 环境启动时就加载。

declare -x LESSCHARSET=utf-8 

3. ls 命令显示中文文件名

最常用的用于显示目录和文件名列表的命令 ls 在显示中文文件名的时候也有问题。下面的命令创建了一个中文名称的文件,文件内容中的中文在显示时没有问题,但是文件名却显示为一串问号。 

$ echo 您好 > 您好.txt  

$ cat \*.txt  

您好  

$ ls \*.txt  

????.txt 

实际上,只要在 ls 命令后添加参数 --show-control-chars 即可正确显示中文: 

$ ls --show-control-chars *.txt  

您好.txt 

为方便起见,可以为 ls 命令设置一个别名,这样就不必在输入 ls 命令时输入长长的参数了。

$ alias ls="ls --show-control-chars" 

$ ls \*.txt  

您好.txt 

将上面的 alias 命令添加到配置文件 /etc/profile 中,可实现在每次运行 Git Bash 时自动加载。

msysGit中Git的中文支持

非常遗憾的是,msysGit 中的 Git 对中文支持不如 Cygwin 中的 Git ,msysGit 中的 Git 对中文的支持情况与前面讨论过的使用了 GBK 字符集的Linux环境下的 Git 相当。

(1)使用未经配置的 msysGit提交,如果提交说明中包含中文,从 Linux 平台或其他 UTF-8 字符集平台上查看提交说明时会显示为乱码。

(2)同样,从 Linux 平台或其他使用 UTF-8 字符集平台进行的提交,若提交说明包含中文,在未经配置的 msysGit 中也会显示为乱码。

(3)如果使用 msysGit 向版本库中添加带有中文文件名的文件,在 Linux(或其他 UTF-8)平台检出文件名时会显示为乱码,反之亦然。

(4)不能创建带有中文字符的引用(里程碑和分支等)。

如果希望版本库中出现使用中文文件名的文件,最好不要使用 msysGit,而应该使用 Cygwin 下的 Git。如果只是想在提交说明中使用中文,对msysGit进行一定的设置后还是可以实现的。

为了解决提交说明显示为乱码的问题,msysGit 要为 Git 设置参数i18n.logOutputEncoding,将提交说明的输出编码设置为 gbk:

$ git config --system i18n.logOutputEncoding gbk 

Git 在提交时并不会对提交说明进行从 GBK 字符集到 UTF-8 字符集的转换,但是可以在提交说明中标注所使用的字符集。因此,如果在非 UTF-8 字符集的平台中录入中文,需要用下面的指令设置录入提交说明的字符集,以便在 commit 对象中嵌入正确的编码说明。

$ git config --system i18n.commitEncoding gbk 

同样,为了让带有中文文件名的文件在工作区状态输出、查看历史更改概要,以及在补丁文件中能够正常显示,要为 Git 设置 core.quotepath 配置变量,将其设置为 false。但是要注意,如果在 msysGit 中添加文件名包含中文的文件,就只能在 msysGit 环境中正确显示,而在其他环境(如Linux、Mac OS X、Cygwin)中文件名会显示为乱码。

$ git config --system core.quotepath false  

$ git status -s  

?? 说明.txt 

注意 如果同时安装了 Cygwin 和 msysGit(可能配置了相同的用户主目录),或者因为中文支持问题而需要单独为 TortoiseGit 准备一套 msysGit 时,为了保证不同的 msysGit 之间,以及与 Cygwin 之间的配置互不影响,需要在配置 Git 环境时使用 --system 参数。这是因为不同的 msysGit 安装及 Cygwin的系统级配置文件的位置不同,但是用户级配置文件的位置却可能重合。

使用 SSH 协议

msysGit 软件包包含的 ssh 命令和 Linux 下的ssh命令没有什么区别,也提供 ssh-keygen 命令管理 SSH 公钥/私钥对。在使用 msysGit 的 ssh 命令时,没有遇到 Cygwin 中的 ssh 命令(版本号:5.7p1-1)不稳定的问题,即 msysGit 下的 ssh 命令可以非常稳定地工作。

如果需要与 Windows 更好地整合,希望使用图形化工具管理公钥,也可以使用 PuTTY 提供的plink.exe作为 SSH 客户端。



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务