今天讲讲如何在Windows下面使用Git。Git是个好东西,然而它最初是针对Linux开发的,因此在Windows上用起来比较麻烦。
目前我知道的方案有如下几个:
- Github客户端:配合Github使用很方便,但需要使用SSH协议,但我在用的代理封掉了22端口,就没法用了;另外这个好像还提供一个Git Bash,没仔细研究过。
- Cygwin+git:Cygwin是一个Unix模拟环境,用里面的Git就可以了。优点是Cygwin的工具比较多;缺点是配置好像比较麻烦。
- msysGit:跟上面的差不多,只不过msys相比于Cygwin更小,功能更少,适合于只想Git的情况。另外已经有人帮忙打包好了,安装即可,萌新推荐。
Github客户端安装使用即可,Cygwin暂时我还用不到,因此这里主要说下msysGit。其实msysGit基本安装全傻瓜化,只是需要设置编码啥的与Linux兼容。
首先从这里拖安装包:https://git-for-windows.github.io/,基本上默认安装就可以了,有一个浏览器集成和一个默认打开方式,嫌烦别装(比如我)。其余默认即可,最后一步有一个Github和VS Online的扩展,建议装上。
然后就可以从CMD,PowerShell中使用git了,用法跟Linux里面基本相同。然而,CMD的命令和Bash差很多,PowerShell又太慢,用起来并不舒服。不过还好有一个Git Bash可以用,速度较快且最大限度地模仿了Bash,比较推荐。
然后你会发现,可以HTTPS协议无法clone,说是协议不支持。额,我也不知道为什么,不过我设置了身份标识后就可以用了,如下:
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
OK,大功告成。嗯?等下,我的文件名怎么乱码了?没错,还有编码问题需要解决。
Git“人性化”的怕0x80以上编码的字符乱码引起终端GG,因此给你转换成了\XXX这种鬼样子。这样关闭:
$ git config --global core.quotepath false
另外Git Gui也需要设置一下编码,否则gitk的时候会乱码:
$ git config --global gui.encoding utf-8
其余的编码问题,则大多伴随msysGit的更新解决了(主要是1.7.10),基本和Linux系统的Git兼容,暂未发现什么问题,发现了之后再来补充吧。
哦对了,还有一个权限问题,NTFS权限划分不够细致,因此可能会引起冲突,因此要用这个命令关掉全局权限检查。
$ git config --global core.fileMode false
如果不想关全局,也可以去掉–global选项只关当前repo。另外如果项目是在Linux下搞的,一定要注意文件名不要有啥奇怪的东西,比如英文冒号,否则在Windows下会Checkout失败的。比如说我,有冒号也就算了,连’\n’这样的东西都弄进去了,另外各种没给后缀名,能爽才怪……
好,现在可以愉快的在Windows下面Git了。