在 Windows 环境下搭建 Git 服务

在 Windows 下最常用的版本控制工具是 SVN,黄金搭档为 VS+Tortoise SVN+AnkSVN,这种搭配适合于小型企业内部的开发管理,但是随着开源热潮的袭来,越来越多的人开始使用 Git 进行版本控制,而且它还能很好的支持分布式版本控制,很适合互联网上多人参与的项目。所以,本文就来说说如何在 Windows 上配置 Git 服务。

一、准备工作

我们需要先下载下面这三个软件:

1、Git(2.8 及以上版本)

下载地址: Git-2.9.2-64-bit.exe

2、Copssh_4.1.0_Installer.exe

3、TortoiseGit

二、安装与配置

1、安装 Git,下面是几个需要注意的地方,其它保持默认。

图 1
图 2
图 3

2、安装完 Git 之后,将C:\Git\bin添加到 windows 的环境变量中。

图 4
图 5

3、安装 Copssh。

图 6

注:因为以后的所有仓库都要放在ICW/home/用户名下面,所以,可以把 ICW 安装在 E 盘或其它空间比较充足的磁盘。

图 7

这里的服务账户名不能设置成AdministratorRoot

图 8

4、添加 windows 用户。

图 9

5、添加 SSH 用户。

图 10
图 11
图 12
图 13
图 14

6、添加C:\ICW\bin到 windows 环境变量中。

图 15
图 16

7、登录 SSH。

打开命令行,然后输入下图命令:

图 17

其中,007@127.0.0.1007是我们上面创建的 ssh 用户名,127.0.0.1是服务器地址,正式环境下可以使用域名。

注:强烈建议使用域名而不用使用 IP 地址。

8、这个时候我们在 bash 环境下输入git,并不能成功,它将提示我们命令未找到。

图 18

所以接下来我们需要将 ssh 与 git 集成起来。

9、集成 ssh 与 git

集成的主要思想就是将C:\Git\bin目录下的git.exegit-receive-pack.exegit-upload-archive.exegit-upload-pack.exe四个文件的快捷方式添加到C:\ICW\bin目录下。所以,我们可以通过在 bash 命令行中使用 ln 命令来链接。其中,git-receive-pack.exegit-upload-archive.exegit-upload-pack.exe三个文件是在C:\Git\mingw64\libexec\git-core目录下。

所以链接的命令如下:

ln -s /cygdrive/c/git/bin/git.exe git.exe 
ln -s /cygdrive/c/git/mingw64/libexec/git-core/git-receive-pack.exe git-receive-pack.exe
ln -s /cygdrive/c/git/mingw64/libexec/git-core/git-upload-archive.exe git-upload-archive.exe
ln -s /cygdrive/c/git/mingw64/libexec/git-core/git-upload-pack.exe git-upload-pack.exe

注意:在 bash 命令中,是不认 windows 路径的,必须转换成 unix/linux 路径,其中/cygdrive/c/就表示 windows 下的c:\

图 19
图 20

10、使用普通用户登录 SSH,测试git命令是否可用。

图 21

可以看出,这时的git命令已经可以在 bash 下正确识别了。

三、初始化一个 Git Repository

1、进入用户007的主目录C:\ICW\home\007,然后创建一个文件夹,名称就是项目的名称,例如:corefx

2、进入corefx目录,然后右键在当前位置打开命令行,然后执行命令git --bare init

3、进入.ssh文件夹:cd ~/.ssh

4、生成公钥:ssh-keygen -t rsa -C "007@suziyun.com" //默认名称为id_rsa

四、安装TortoiseGit

五、克隆一个项目

1、新建一个空的文件夹,然后右键点击git clone

图22

2、输入远程仓库的地址007@git.suziyun.com:corefx,其中,007是git用户名,git.suziyun.com是远程服务器地址,corefx是项目名称。格式为:用户名@服务器地址:项目名称

图23

3、输入密码。

图24

4、下载完成。

图25

注:如果遇到Host啊、Key啊什么问题的,直接把本地C:\Users\Administrator\.ssh\known_hosts文件里面的东西全删掉就OK了。

Tags: git tortoise