【版本管理】windows上搭建git+apache服务器 1

git服务器最大的特点是分布式版本控制,而且更为强大的是合并功能,这点也是常用的。就抛弃svn了。在windows上面搭建svn很容易,下次再说。

在windows上面搭建git版本服务器,常用msysGit +Cygwin来搭建,曾经用此种方法搭建过一次,繁琐的很,这次用git+apache来搭建,搭建很容易的。

准备软件

msysgit http://code.google.com/p/msysgit/downloads/list

apache server http://httpd.apache.org/download.cgi     下载包含OpenSSL的版本

tortoisegit  http://code.google.com/p/tortoisegit/downloads/list  和tortoisesvn一样的客户端工具,操作方便,推荐使用

操作步骤

1.安装msysGit

    我安装在D:\server\Git\ 
    注:图中请选择Run git from the Windows Command prompt

   

2.复制dll文件

    在git中的D:\server\Git\libexec\git-core\git-http-backend.exe是用来处理HTTP 请求的,直接运行会出现错误。

    缺少libiconv-2.dll,libiconv-2.dll位于D:\server\Git\bin\libiconv-2.dll,将D:\server\Git\bin\libiconv-2.dll复制到D:\server\Git\libexec\git-core\,再次运行git-http-backend.exe就不会出现错误。

    git分就算是完成了。

3.安装apache服务器

    我安装在D:\server\Apache2.2,正常完成后,apache会自动启动,并且占用80端口,打开浏览器,进入http://localhost ,如果出现“It works!”,就说明apache服务器安装成功了。

4.配置用户帐号

    使用命令提示符进入D:\server\Apache2.2\bin目录,输入命令:

htpasswd -cmb htpassword dapeng dapeng

    执行成功后,就会在当前目录下生成htpassword 文件,内容如下,用户名 :dapeng  密码:dapeng,密码是加密过的。

dapeng:$apr1$uF7Kv.a9$iHcUdyOeGA7GnWWWjkd3T/

             复制htpassword到D:\GitRepos,D:\GitRepos是作为版本库的地方。

5.配置Apache服务器

    进入D:\server\Apache2.2\conf,用文本编辑器打开httpd.conf,找到 <directory />,修改如下:
<directory />Options FollowSymLinksAllowOverride NoneOrder deny,allowAllow from all</directory>
然后在 httpd.conf 文件末尾追加:
# Set this to the root folder containing your Git repositories.# 指定 Git 版本库的位置
SetEnv GIT_PROJECT_ROOT C:/workspace
# Set this to export all projects by default (by default,# git will only publish those repositories that contain a# file named “git-daemon-export-ok”
# 该目录下的所有版本库都可以透过 HTTP(S) 的方式存取
SetEnv GIT_HTTP_EXPORT_ALL
# Route specific URLS matching this regular expression to the git http server.
# 令 Apache 把 Git 相关 URL 导向给 Git 的 http 处理程序
ScriptAliasMatch \"(?x)^/(.*/(HEAD | \info/refs | \objects/(info/[^/]+ | \[0-9a-f]{2}/[0-9a-f]{38} | \pack/pack-[0-9a-f]{40}\.(pack|idx)) | \git-(upload|receive)-pack))$" \"D:/server/Git/libexec/git-core/git-http-backend.exe/$1"

<Location />AuthType BasicAuthName "GIT Repository"AuthUserFile "D:/GitRepos/htpasswd"Require valid-user</Location>

上面修改内容中,第一个指令设置 Git 的版本库位置;第二个指令表示,该目录下的所有版本库都可以通过 HTTP(S) 的方式存取;第三个指令则是让 Apache 把 Git 相关 URL 导向给 Git 的 HTTP 处理程序,也就是我们前面提到的 git-http-backend.exe。最后的 <Location /> 区段设定了虚拟根路径 "/" 的验证规则;D:/GitRepos/htpasswd 是账号密码文件,该文件可以在任何位置,也可以使任何名字,只要在这里指定即可。

在httpd.conf大概46行,配置Apache的端口,默认是80,我修改为801

完成上述修改之后,重启 Apache 服务。

如果你希望将来透过远端存取版本库时,一律使用 http://my-server/git/* 开头的 URL,则可将 ScriptAliasMatch 指令改为 "(?x)^/git/(.*/(HEAD | \ ……."

6.初始化版本库
    打开命令提示符,进入D:\GitRepos
   
mkdir demo.gitcd demo.gitgit init --baregit update-server-info

这样就完成了一个空白的版本库的初始化了。
7.测试
    在windows上面直接使用tortoisegit,不使用git命令了。
    安装tortoisegit,我用的win7 64位,安装tortoisegit 64位的版本后,就开始测试吧!
    在d:\wordspace文件夹中点击右键,选择git clone,相当于就svn checkout

    在Url中输入 http://localhost:801/demo.git
 

输入用户名和密码

clone成功

在demo文件夹中,增加demo.txt文件,使用tortoisegit的add命令,

紧接着可以选择commit,提交到本地版本库中,

设置提交人员的信息

填写版本注释

这样就提交到本地的版本库了

紧接着还可以选择PUSH,提交到git服务器的版本库

选择Push all branches,将本地所有分支都提交主干

ok,这样就完成了。



转自http://dapeng.me/version-management-on-windows-to-the-build-the-git-the-the-apache-server.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值