`
sunsonavaj
  • 浏览: 8959 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Git 系列之二:Windows 下 Git 客户端的选择,及 msysGit 各种中文问题的解决-转载

阅读更多
Git 系列之二:Windows 下 Git 客户端的选择,及 msysGit 各种中文问题的解决
在 Windows 下用 NetBeans 做 PHP 开发,首先想到的是 NetBeans 的插件:NBGit。
评价:能用;若需没有的功能,可以自定义菜单调用自定义 bat 脚本;开发不活跃,使用没有信心。

第二个则是:TortoiseGit,SVN 小乌龟的 Git 版本。
评价:该有的功能基本都有了,还是不错的。

另外,TortoiseGit 只是 GUI 工具,使用它需要先安装 msysGit,这是正宗的 Git 之 Windows 版本。msysGit 有个简单的 GUI 工具,及简单的 Explorer 集成;但它自带的 Bash 非常好用,深得 Linux 的真传。

选择:msysGit。
理由:
NBGit 不用说,功能都不完善,还需要自己定制 bat 脚本(若此,则它同样要依赖 msysGit);开发不活跃,很可能 NetBeans 下个版本更新就不能用了;况且,我们还有别的项目,不使用 NetBeans。

TortoiseGit 从功能上说是完善的,但它只是功能的堆砌而已,使用时完全体会不到 GUI 带来的便利。相反,它让人感觉很繁琐,一个劲地点鼠标,点来点去全是跟菜单打交道,远离了 Git 命令、远离了 Git 输出提示、远离了真相。

msysGit 的 Bash 非常好用;加上 Git 强大的 alias 功能,我们完全可以自定义一个 $ git go,使得 90% 的情况下只需要这一个命令,即使是不熟悉命令行的 Windows 用户也会觉得很好玩;因为 NBGit、TortoiseGit 都需要 msysGit 做底层,我们直接用底层工具也避免了上层 GUI 带来的额外的 bug。

需要的配置:

1、C:\Program Files\Git\etc\git-completion.bash:

alias ls='ls --show-control-chars --color=auto'
说明:使得在 Git Bash 中输入 ls 命令,可以正常显示中文文件名。

2、C:\Program Files\Git\etc\inputrc:

set output-meta on
set convert-meta off
说明:使得在 Git Bash 中可以正常输入中文,比如中文的 commit log。

3、C:\Program Files\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,在选项里禁止分页,则无需设置上面的选项。

4、C:\Program Files\Git\etc\gitconfig:
[alias]
go = “! bash -c \”git pull && git add .; if [ \\\"$*\\\" == \\\"\\\" ]; then git commit -a; else git commit -am \\\”$*\\\”; fi; git push origin master:your-id;\”"

说明:强大的 alias,有了这个,我们 90% 的情况下只需要输入 $ git go 这一个命令,免去了先拉后提交再推的繁琐步骤。

两种用法:
$ git go

$ git go aaa 修订说明

命令后带修订说明时,会直接提交。需要注意的是,在“修订说明”之前,有还个“aaa”,这是个 bug,参数中的第一个会被忽略,所以随便写一个凑数的……。

若命令行里没有提供修订说明,则会自动弹出一个编辑器,等待输入。默认的编辑器是 Vim。Vim 的使用是很简单的,首先要明白它有两个模式,一个是命令模式、一个是输入模式。Vim 启动的时候默认的是命令模式,需要先按’i'键,进入输入模式;然后就正常编辑;编辑完成之后,将输入法切换回英文状态,按 Esc 重新进入命令模式;此时按 ‘(Shift):wq‘ 并回车,w 表示写入保存、q 表示退出。完毕!

若实在不习惯 Vim,也可以设置为其它编辑器:

$ git config --global core.editor "notepad"
其中 notepad 可以替换为更好用的 wordpad、notepad++ 等(不过它们在命令行里无法直接访问,得先设置 PATH 变量)。

以上 alias 是为 Windows 定制的,Linux 下可以写得更优雅,不过鉴于使用上没分别,就保持一致吧~。

[gui]
encoding = utf-8

说明:我们的代码库是统一用的 utf-8,这样设置可以在 git gui 中正常显示代码中的中文。

[i18n]
commitencoding = GB2312

说明:如果没有这一条,虽然我们在本地用 $ git log 看自己的中文修订没问题,但,一、我们的 log 推到服务器后会变成乱码;二、别人在 Linux 下推的中文 log 我们 pull 过来之后看起来也是乱码。这是因为,我们的 commit log 会被先存放在项目的 .git/COMMIT_EDITMSG 文件中;在中文 Windows 里,新建文件用的是 GB2312 的编码;但是 Git 不知道,当成默认的 utf-8 的送出去了,所以就乱码了。有了这条之后,Git 会先将其转换成 utf-8,再发出去,于是就没问题了。

以上,给 Windows 下的同事在 Git Bash 里推代码就比较完美了。不过仍然有 3 个问题:

1、上面的 alias $ git go 有 bug,代码修订说明之前要输入一串字符凑数;

2、$ git diff,如果代码里有中文,会显示乱码;

3、$ git checkout 有时候需要修改/增删很多文件,如果某些文件被占用,会被 Windows 拒绝,导致失败,甚至可能造成版本库出现无法修复的问题。

这 3 个都是可承受的问题,前两个应该有办法解决;第 3 个归功于文件系统,只能尽量避免 checkout,实在需要的时候先注销一次,就不会有问题了。

【TIP】该文只是解释说明,具体操作请按《Windows 下 git 配置与使用指南》Wiki 执行。
分享到:
评论

相关推荐

    msysgit-2.15.0-64-bit(git for windows)

    msysGit是Git在Windows平台上的一个移植版本,它提供了一个与Unix/Linux环境类似的命令行接口,使得Windows用户也能方便地使用Git进行版本控制操作。这个压缩包“msysgit-2.15.0-64-bit”包含了Git for Windows的64...

    windows下git工具msysgit与TortoiseGit

    总的来说,Windows下的msysGit和TortoiseGit为开发者和非开发者提供了便利的Git环境,无论你是代码新手还是经验丰富的程序员,都能有效地管理和协作项目代码。它们是Windows用户接触和深入理解Git的绝佳选择,尤其是...

    windows下git客户端安装--最全

    ### Windows 下 Git 客户端安装与配置指南 随着版本控制的重要性日益凸显,Git 已成为软件开发领域不可或缺的一部分。对于使用 Windows 操作系统的开发者来说,安装并配置一个易用的 Git 客户端至关重要。本文将...

    MsysGit (Git Bash )

    4. **自动处理路径问题**:Windows和Unix的路径表示方式不同,MsysGit会自动处理这种差异,使得Git命令可以正确识别Windows路径。 5. **图形界面工具**:除了命令行工具,MsysGit还提供了图形化的Git客户端,如Git ...

    Windows-Git工具

    本主题主要围绕“Windows下的Git工具——msysGit”展开,它是一个专门为Windows用户提供的Git环境。msysGit由Git社区开发,包含了Git的所有功能,并针对Windows平台进行了优化,使得开发者可以在熟悉的Windows界面下...

    Git客户端msysGit的安装.rar

    Git 客户端 msysGit 的 安装,一些安装时候的细节需要注意,如果对你有帮助的话请下载哦亲们

    msysGit-2.13.6-64-bit

    同时,Git Bash还包含了mingw64,一个用于Windows的MinGW(Minimalist GNU for Windows)的64位版本,进一步增强了在Windows下使用Git的便利性。 此外,msysGit还包括了Git GUI,这是一个图形化的用户界面,方便不...

    与 MsysGit 1.9.5 兼容的最后一个版本(TortoiseGit-2.6.0.0-64bit)

    TortoiseGit 是 TortoiseSVN 的 Git 版本,tortoisegit 用于迁移 TortoiseSVN 到 TortoiseGit,一直以来 Git 在 Windows 平台没有好用 GUI 客户端,现在 tortoisegit 的出现给 Windows 开发者带来福音。

    msysgit(Git for Windows)V2.13.3 64bit

    Git for Windows,以msysGit形式提供的Git工具,是Windows用户使用Git版本控制系统的主要途径。在本场景中,我们讨论的是msysGit的V2.13.3 64位版本,这是一个专为Windows 64位操作系统设计的Git实现。尽管在发布时...

    msysgit-2.18.0-64-bit 绿色版

    msysgit-2.18.0-64-bit 绿色版,msysgit-2.18.0-64-bit 绿色版

    windows下GIT工具 msysgit win7 64位可用

    标题提及的"windows下GIT工具 msysgit win7 64位可用",意味着该工具在Windows 7操作系统64位版本上经过验证,可以稳定运行。msysGit项目旨在为Windows用户提供一个与Unix/Linux系统相似的环境,以便更好地兼容Git...

    git for windows Git-2.16.2-64-bit

    Git for Windows,具体版本为Git-2.16.2-64-bit,是一款专为Windows用户设计的Git客户端工具。Git本身是一个分布式版本控制系统,由Linux创始人Linus Torvalds开发,它允许开发者对软件项目进行高效、灵活的版本管理...

    Git客户端管理工具

    这里主要介绍的是msysGit和Windows GUI,这两个工具都是针对Windows平台的Git客户端。 msysGit是Git在Windows环境下的移植版本,它提供了一个命令行接口,让用户能在Windows操作系统上使用Git的所有功能。msysGit...

    Git最全--Git安装包+TortoiseGit64+TortoiseGit语言包+Git所有命令文档+Windows下安装git操作步骤文档

    5. **Windows下git客户端安装.docx**:这份文档提供了在Windows上安装Git客户端的详细步骤,包括下载、安装、配置Git以及设置用户信息等。 6. **Copssh_4.1.0_Installer.exe**:CopSSH是一个用于Windows服务器的...

    Git-2.38.1-64-bit windows

    安装过程中,用户可以选择配置项,如设置默认编辑器、选择SSH客户端(OpenSSH或Git内置的msysgit)以及是否将Git集成到右键菜单。 安装完成后,开发者可以通过命令行(如PowerShell或cmd)使用Git命令,如`git ...

    msysgit(Git for Windows)V2.16.3 64bit

    这个软件包,特别是"msysgit(Git for Windows)V2.16.3 64bit",提供了64位架构下的Git环境,适用于Windows操作系统用户。Git是一款分布式版本控制系统,由Linus Torvalds为Linux内核开发,现已成为全球软件开发者...

    git客户端和使用手册,msysgit,tortoisegit

    msysGit是Windows环境下Git的移植版,提供了一个命令行界面来使用Git。它包括了Git的所有核心功能,允许开发者在Windows操作系统上执行Git命令,如`git clone`, `git add`, `git commit`, `git push`等。msysGit通过...

    64位中文GIT服务器

    总之,这个压缩包提供了一套完整的64位中文Git开发环境,包括Git客户端和友好的图形化界面工具,以及中文语言支持,极大地便利了中文用户在Windows系统上的Git操作。无论是个人项目还是团队协作,都能从中受益。

Global site tag (gtag.js) - Google Analytics