一、说明
最近在阿里搞了台Windows Server2012的服务器,然后想着搭建个Git服务器,在网上找了种方式,就是使用Git+COPSSH+TortoiseGit搭建本地Git服务器,然后就去试了下,搞了半天,最后发现还是不行,怀疑是软件的问题,看网上的教程他们很多都是Copssh_4.1.0_Installer.exe的,用这个版本在Server2012上安装之后根本就启动不了,也没有成功创建用户。。估计是不支持Server2012。。这就很尴尬。。然后就想去官网找个最新的版本试试:https://www.itefix.net/copssh
发现了问题所在。。我用的是64位系统,要下收费版。。。然后想了下果断放弃这个方法。。换个方式来搭建,还有种方式就是使用gitblit。
如果想用Git+COPSSH+TortoiseGit来搭建可以参考以下文章:
http://blog.csdn.net/aaron_luchen/article/details/10498181/
http://blog.csdn.net/code_style/article/details/38764203?locationNum=5&fps=1
http://lxsym.blog.51cto.com/1364623/551028/
http://www.cnblogs.com/fengh/p/3922635.html
http://blog.csdn.net/henrytam123/article/details/38354555
http://blog.csdn.net/u012678179/article/details/49888455
http://www.jianshu.com/p/442a0e01dd95
二、安装配置
由于要使用gitblit必须要安装JDK,至于怎么安装请百度,gitblit的下载地址为:http://www.gitblit.com/
这里最新的是1.8,下载之后,解压,然后编辑E:\Git_lib\data\defaults.properties 文件
#Git仓库的文件路径
git.repositoriesFolder = E:\Git_lib\GitRepository
#HTTP协议使用的端口号
server.httpPort = 1010
#HTTPS协议使用的端口号, Tomcat的HTTPS默认使用的是8443端口
server.httpsPort = 8443
#HTTP协议传输数据的接口,请改为自己的ip
server.httpBindInterface = 192.168.67.14
#HTTPS协议传输数据的接口,请改为自己的ip
server.httpsBindInterface = localhost
修改之后保存defaults.properties文件
三、测试
然后以管理员运行gitblit.cmd
然后在服务器内用浏览器访问 http://xxxxx:1010/ 就可以了。
还有种方式就是以服务的方式启动gitblit,具体步骤如下:
修改 installService.cmd 文件。
1)修改 ARCH
32位系统:SET ARCH=x86
64位系统:SET ARCH=amd64
2)
添加 CD 为程序目录
SET CD=E:\Git_lib(你的实际目录)
3)
修改StartParams里的启动参数,给空就可以了。
修改之后以管理员运行installService.cmd文件就可以了。
四、外网访问
由于我用的是阿里云的服务器,所以要想通过外网能访问到gitblit,还的做下调整,首先得在服务中,把相应的端口加入到防火墙的入站规则中去,然后到阿里云的控制面板中
添加安全组规则
把要在外网能访问的端口加入到上面去,就行了。
五、gitblit使用
1)用户登录
输入管理员账号admin/admin登录
2)创建版本库
点击下拉菜单中的创建版本库,或者页面中版本库进行管理
输入名称,具体访问策略与初始化内容默认,根据实际需求更改
创建空的版本仓库成功,页面会有一些提示信息与命令,供用户用于向仓库中推送内容
这里用的是admin进行创建的,不推荐使用管理员来创建项目,一般通过配置新的用户,在用户端(即客户端)推送内容到仓库。这也比较符合实际生产,admin账户只用来管理服务器站点,不参与实际业务。包括创建版本库,以后也可以通过配置权限,向用户授予权限。接下来创建一个用户
3)创建用户配置权限
点击下拉菜单中的用户
点击右上角添加用户,进入明细页面,填写常规信息
属性页根据具体情况,填写,可选
访问权限页面,配置版本库权限
选择版本库,这里选择上面admin创建的fendo.git,选择具体权限,选择RWC(推送,创建ref)权限,点击添加,然后点击保存。
六、客户端运行
1)本地安装GIT,略
2)配置GIT
git config --global user.name "fendo"
git config --global user.email "2312892206@qq.com"
3)登录Gitlib
使用刚刚创建的新账号,fendo,进行登录,登录成功之后,会显示admin创建的那个项目
4)提交项目
具体步骤如下:
git init
git add .
git commit -m "commit message"
git remote add origin ssh://fendo@xxxxxx:29418/fendo.git
git push -u origin master
其中:
ssh: connect to host xxxxx port 29418: Connection timed out
fatal: Could not read from remote repository.
然后刷新下gitblit就会有结果了
5)无密码提交
ssh无密码克隆推送操作,主要操作就是客户端命令行创建SSH Key,通过以下命令:
$ ssh-keygen -t rsa -C “youremail@example.com”
然后到用户主目录下找到.ssh文件夹,下面生成了id_rsa和id_rsa.pub这两个文件,将pub文件中的内容复制,上传到Gitblit站点自己账户的->用户中心->ssh,添加成功,则以后操作通过ssh://协议操作,则可以不用密码。
七、问题
以服务的方式启动gitblit报错:
windows 不能在本地计算机启动gitblit
出现这种问题的原因就是执行安装服务的时候,文件修改错了,如果是64位的系统的话,把ARCH设置成amd64的话,会出现这种问题,设置成x86就行了。
SET ARCH=x86
先执行
uninstallService.cmd删除调服务,然后再以管理员方式执行installService.cmd,就行了。