在 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

这里的服务账户名不能设置成“Administrator”和“Root”。

图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.exe”、“git-receive-pack.exe”、“git-upload-archive.exe”、“git-upload-pack.exe”四个文件的快捷方式添加到“C:\ICW\bin”目录下。所以,我们可以通过在bash命令行中使用ln命令来链接。其中,“git-receive-pack.exe”、“git-upload-archive.exe”、“git-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