window使用scm-manager+java搭建git服务器并使用hook实现网站自动部署

来源:赵克立 分类: 其它 标签:Git发布时间:2017-01-02 22:51:26浏览:58
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2017-01-03 08:30:14

在window下搭建git服务器效率虽然没有linux下面高,但有很多种情况我们需要这么做,于是就有啦这篇文章

windows下的git服务器搭建知道的有两种组合copssh+gitscm-manager+java后者要简单一些建议使用

copssh+git的搭建请参考文章  

windows下安装copssh+git+tortoiseGit服务器 (win2008rc 64 win7 64位)

win2008r2 64位

需要的软件

scm-server-1.50-app.zip

jre-8u65-windows-x64.exe

git.exe 64

第一步安装GIT服务器

首先安装jre运行环境并且配置好(直接安装jre文件就可以,默认安装的时候就会配置好java的环境变量)

scm-manager的官网下载压缩包如下图:

blob.png 

把文件解压到你想放的位置,注意不要有中文,然后右键管理员打开scm-server.bat文件启动git服务

blob.png

出现一个滚动的命令行窗口,不要关闭,默认会在8080端口开一个web服务,直接在浏览器中输入 http://localhost:8080/scm就可以打开管理界面

blob.png

到此使用git服务器的时候只要运行下就可以啦,也可以把它安装成windows的服务进程,开机直接启动,直接在这个目录下面打开命令行输入下面命令安装为服务

scm-server.bat install

卸载服务使用下面命令

scm-server.bat uninstall

默认用户名和密码都为scmadmin管理界面如下,在里面首先选择repository Types 设置git代码的存放位置

blob.png

第二步添加自己的git仓库

然后选择 Repositories 添加一个git库名字为siee,添加成功后如下图,

blob.png

后面那个url就是gitclone地址,里面可以添加用户设置权限等功能,这个时候一般就可以使用啦,在本地安装一个tortoisegitgiturl地址直接填进去就可以clone代码下来同时也可以提交。可以直接绑定一个域名到服务器实现远程访问git仓库


windows2008服务器上因为默认开启的有防火墙,所有开启的8080端口服务防火墙没有放行,所以可能会出现在外网通过域名访问不了的情况,这个时候需要在防火墙中添加一个入站规则,

打开防火墙,选择高级

blob.png

选入站规则,新建规则,端口

blob.png

下一步

blob.png

继续到最后起一个名字比如 scm-mananer

再次从外网域名访问,应该就可以啦

最后一步利用hook实现网站的自动部署

假如我们的网站部署在 D:/www/siee,我们希望有代码post上来后直接同步到这个目录里,


准备工作

上面的siee仓库创建好后直接到D:/www这个目录下,按下shift+鼠标右键菜单里有个此处进入cmd打开cmd输入

git clone http://www.你的域名.com:8080/scm/git/siee

会创建一个siee目录并把siee仓库的代码给克隆到siee目录下面

一般部署时会有两个版本开发版本上线版本,可以克隆对应的版本

克隆开发版本或上线版本只需加上对应的分支(添加上用户名和密码可以省得再次输入),如下是科隆开发版本的代码

git clone -b dev http://用户名:密码@www.你的域名.com:8080/scm/git/siee

然后就需要当有push提交的话就把代码同步到这里,需要使用pull操作来拉取合并提交上来的代码

GIT仓库同步hook设置

在上面配置git服务器的时候有配置过git仓库的位置,找到刚刚创建的仓库的位置,例如在D:\.scm\repositories\git\siee

siee就是上面刚刚创建的git仓库,打开后有个hooks目录

blob.png

打开hooks目录创建一个文件名为post-receive.bat,输入下面内容

echo "post-receive"
cd /d D:\www\siee
call git  pull http://用户名:密码@www.你的域名.com:8080/scm/git/siee dev
exit 0

上面是拉取开发分支的代码,如果也想同步上线版本或其它分支的代码时只要在后面继续添加pull对应的分支命令即可

在本地修改一些文件然后push提交上去后如图:

blob.png

创建的post-receive.bat已经被调用啦,并且代码同步到啦对应的部署目录


微信号:kelicom QQ交流群:215861553
点击更换验证码
留言