概述

Git入门系列包括git客户端的安装配置,日常开发中常用命令。本文是第一篇,介绍git客户端的安装,配置。

Git安装

windows下安装和使用Git(msysGit)

msysGit能在windows下提供一个bash shell环境,让用户能通过命令行的方式使用Git。

安装msysGit

双击安装程序(如Git-1.9.5-preview20150319.exe) 开始安装,如下图所示

Next->Next,进入Select Components 窗口,按下图选择:

选择“Use Git from Git Bash only”, 将不会修改windows的PATH,这是最安全的选择。第三个选项有可能会覆盖掉WIndows下的”find”和“sort”,不建议选择。Next,进入“Configuring the line ending conversions” 窗口,设置行结束符转换方式:

选择第一项,意思是git从服务器拉代码到本地时,会自动把行结束符从LF(unix-style下)转换成CRLF(windows下),而当提交代码到服务器时,又会自动把行结束符从CRLF(windows下)转换成LF(unix-style下)。

msysGit 的配置

完成msysGit安装后,点击Git Bash图标,启动msysGit,如下图所示。

(1)如何访问Windows下的盘符
直接通过“/c” 即可访问Windows的C盘,用“/d”即可访问Windows的D盘。
$ ls -ld /d/data/
drwxr-xr-x 3 dellzj Administ 0 May 13 12:39 /d/data/
(2)命令行补齐和忽略文件大小写
msysGit默认已经安装并启用了Git的命令行补齐功能,并且命令行补齐时忽略文件名的大小写,非常方便。
(3)bash窗口的易用性设置
鼠标右击bash窗口顶部边缘,选择属性

勾选“快速编辑模式”。

这样,就能随时用鼠标划选窗口中的内容并右击,即可复制,如下图

字体Tab和布局Tab可以调整窗口大小,这里不再赘述。

msysGit中 shell环境的中文支持

(1) ls命令显示中文文件名
mysGit中ls命令显示中文文件名的时候有乱码问题。下面先创建一个名为“中文”的目录,然后ls查看,却显示为一串问号。
$ mkdir 中文
$ ls //??????

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

为方便起见,为ls设置别名,将alias命令添加到配置文件/etc/profile中
alias ls=’ls –show-control-chars –color=auto’
alias l=’ls -CF’
alias la=’ls -A’
alias ll=’ls -alF’
修改后 运行 source /etc/profile 别名设置即生效

使用SSH协议

git服务器(如GitLab或者GitHub)一般会提供两种常用的传输协议(HTTPS和SSH)。推荐使用SSH方式,因为以公钥认证方式访问SSH协议的Git服务器时无需
输入口令,而且更安全。
(1)生成 公钥/私钥对
例如我在GitLab上的账号xxxx@xxxx.com ,则用如下命令生成公私钥对

1
$ ssh-keygen -t rsa -C "xxxx@xxxx.com"

系统将会询问你想保存的文件名称和打开文件的密码(该密码可以为空),整个过程如下所示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$ ssh-keygen -t rsa -C "xxxx@xxxx.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/dellzj/.ssh/id_rsa): id_rsa_xxxx #这里指定保存的文件名称
Enter passphrase (empty for no passphrase): #这里设置打开私钥文件的密码,可以直接回车不设置
Enter same passphrase again: #确认密码
Your identification has been saved in id_rsa_xxxx.
Your public key has been saved in id_rsa_xxxx.pub.
The key fingerprint is:
4b:ac:f0:80:5d:c7:6f:54:c4:5b:e7:49:d9:84:73:41
xxxx@xxxx.com
The key's randomart image is:
+--[ RSA 2048]----+
| oo .E=|
| . .. +o+|
| . o . o.=.|
| o . o o . ..|
| . + S o |
| + o o |
| o . |
| |
| |
+-----------------+

在~/.ssh 下已经生成两个文件 id_rsa_xxxx(私钥文件) , id_rsa_xxxx.pub (公钥文件)。
使用如下命令把公钥内容拷贝到系统剪贴板里:
Windows:

1
clip < ~/.ssh/id_rsa.pub



(3) 配置GIT SSH连接参数
~/.ssh 目录下新建一个config文件,输入以下内容

1
2
3
4
5
host git.xxxx.com
port 34592
user git
PreferredAuthentications publickey
identityfile ~/.ssh/id_rsa_kuaiwifi

git.xxxx.com 是GitLab域名,其IP地址是 xxx.xxx.xxx.xxx (windows下事先hosts文件配好这个域名映射);
34592是Gitlab服务器上的ssh 端口;
git是GitLab服务器上的用户 ;
identityfile 指定刚生成的私钥文件 。

(4) 测试SSH到GitLab上的连接

Kdiff3安装和配置

Kdiff3是解决冲突的GUI工具,可以用它来作为Git解决冲突时的默认工具。
(1)下载安装Kdiff3(下载地址),假设安装目录为C:\Program Files\KDiff3
(2)Git Kdiff3配置

1
2
$ git config --global merge.tool kdiff3
$ git config --global mergetool.kdiff3.cmd '"C:\\Program Files\\KDiff3\\kdiff3.exe" $BASE $LOCAL $REMOTE -o $MERGED'

(3)kdiff3 编码设置
kdiff3 默认采用操作系统的编码(例如中文windows 的GBK),所以如果遇到UTF-8的文件,会出现中文乱码,所以需要配置kdiff3的编码为UTF-8.如下


至此,windows下msysGit已经安装并配置好~