选择Git服务器部署策略
找了一圈,发现如下方法来架设Git服务器:
- Bonobo Git Server:http://www.chodounsky.net/bonobo-git-server/ 需要IIS6+/.net 4/asp.net MVC 3,官方提供了比较详细的安装说明,但据说问题不少
- WebGit.NET:https://github.com/otac0n/WebGitNet/wiki/Getting-Started 需要IIS/asp.net MVC 3/msysgit,好久不更新了
- Git-Web-Access:https://github.com/yysun/Git-Web-Access 又一个MVC开发的,也好久没有更新
- git-dot-aspx:https://github.com/JeremySkinner/git-dot-aspx 需要iis7+/.net 4/asp.net MVC 2,也好久没有更新
- Grack:https://github.com/schacon/grack 需要ror环境,也好久没有更新
- GitStack:http://gitstack.com/ 对系统的要求比较高,2003/xp就无法支持了
- scm-manager:https://bitbucket.org/sdorra/scm-manager 需要Java环境,更新比较频繁,安装配置比较简单
- Gitblit:http://gitblit.com/ 同样需要Java环境,安装配置比较简单
- Gitalist:http://www.gitalist.com/ 需要perl环境,安装配置也简单
- Indefero:http://www.indefero.net/open-source/ 需要PHP/MySQL/Apache等,好久不更新
- Git Daemon即守护进程:通过git daemon –reuseaddr –base-path=/path/to/git/启动,通过git://协议进行访问,使用9418端口进行通信,需要配合Gitosis才能好用
- Gitolite:https://github.com/sitaramc/gitolite 需要cygwin/ssh以及一堆设置
- gitosis:https://github.com/tv42/gitosis 需要cygwin/ssh以及一堆设置
- GitLab:http://gitlabhq.com/ 需要ruby/Gitolite/Nginx等一堆
- CopSSH+msysgit+putty等工具,配置好繁琐
- 通过GitHub.com,或者类似的托管服务,这个是最省事的了
- Windows文件共享,但是不利于权限控制,极不推荐
- git remote add origin file:///ipaddress/sharename/
- git clone file:///ipaddress/sharename/
通过比较发现需要CopSSH/Cygwin等环境的应用配置起来比较复杂,剩下的几个支持git smart http协议的web应用配置起来比较简单:
- Bonobo Git Server
- WebGit.NET
- Git-Web-Access
- scm-manager
- Gitblit
- Gitalist
最后再根据更新/稳定等因素筛选出Bonobo Git Server、scm-manager、Gitblit,结果最终选择了scm-manager。
安装scm-manager
在机器上安装java环境,从http://java.com/zh_CN/download/manual.jsp选择脱机版下载安装
从https://bitbucket.org/sdorra/scm-manager/wiki/download下载最新的SCM-Manager
安装为系统服务:
1
|
scm-server.batinstall
|
然后在系统服务里设置为自动启动,然后启动服务就可以通过http://localhost:8080访问了,默认用户名和密码都是scmadmin。
登进系统以后通过Repository Types修改Git中心库存放的路径。
修改默认的管理员用户名或者是其他的一些配置都可以找到%userprofile%\.scm\config目录下的相应xml配置文件来修改,注意要重启scm-server服务。
更新:低版本操作系统如server 2003可能会在C:\Documents and Settings\Default User\.scm这样的目录下,而不是当前用户文件夹
如果要启用邮件以及提醒,还需要安装插件scm-mail-plugin、 scm-notify-plugin,然后在设置中把Mail相关的SMTP设置填写好。
如果代码提交要跟Redmine关联,还需要安装插件scm-redmine-plugin,然后在项目信息里的Redmine选项卡配置Redmine地址为http://localhost:3000;
如果要启用更新、自动关闭,还需要scm-manager和redmine使用同样的用户名密码,而且Redmine设置里必须启用REST API;
然后在提交的时候需要用git commit –m “(#问题ID) fix 修复内容”来关闭问题,可以用的关键字如fix,fixed等可以自行配置。
管理配置scm-manager
1、修改端口号
端口号默认为8080,若要修改端口号请修改conf\server-config.xml文件,把第53行的jetty.port修改为你希望的端口号。
2、为避免意外删除git库,请打开Archive功能
默认地Archive功能被禁用。禁用时,如果我们在Repositories页面中点击Remove按钮时,被选中的git库将被删除,相当于在Windows中删除了这个文件夹,并且也没放到回收站里。如果git库被意外Remove掉了损失是可想而知的。(注意,虽然按钮的名字为Remove,但其实是Delete)
因此,切记,我们要打开Archive功能,方法是:
Config -> General -> General Settings -> 勾选Enable repository archive。
激活Archive功能后请刷新一次浏览器。
Archive功能打开后,活动的git库不能被删除(Remove按钮被禁用了)、只能被Archive(归档)。但同时要注意的是,归档后的git库允许被删除。同样,一旦被删除就找不回来了,永远丢失了。
3、配置为在Windows服务中启动
scm-manager的启动方式有多种,可以在DOS中启动,也可以在Windows服务中启动,还有其它一些启动方式。下面我们采用Windows服务方式启动。
* 安装为Windows服务,在DOS中执行:
bin\scm-server.bat install
* 从Windows服务中卸载,在DOS中执行:
bin\scm-server.bat uninstall
4、日常操作
我们可以用浏览器打开http://localhost:8080/scm,然后通过这个界面新建git库、或导入已存在的库。
所有的git库必须放到某个根目录下,这个根目录可在Config -> Repository Types中指定。
另请注意的是,如果我们手工把某个git库拷贝到这个根目录下,scm-manager不会自动识别,需要我们执行导入操作。
5、其它说明
* 用不同方式启动scm-mananger其所用到的目录不同。例如,在Windows XP DOS命令行启动时,其目录为个人主目录;通过Windows服务来启动时其目录为C:\Documents and Settings\LocalService\.scm,并且从log看出,还用到了C:\Windows\Temp临时目录。
客户端安装
不管最终是使用那一种客户端(Git Extensions:http://code.google.com/p/gitextensions/或TortoiseGit:http://code.google.com/p/tortoisegit/),msysgit都是必须安装的:从http://msysgit.github.com/下载最新的Git-1.8.0-preview20121022.exe安装即可。
偏向使用命令行的只装msysgit就足够了;如果要使用图形界面可以选择msysgit自带的git gui,或者是另外安装git extensions或tortoisegit;个人感觉git extensions的图形界面比较强大,如果安装它的话一定要安装上KDiff3。
更便捷的就是与Visual Studio集成了,Git Extensions安装的时候可以选择安装Visual Studio插件集成;另外还有一个工具可以进一步提升便捷性Git Source Control Provider:http://gitscc.codeplex.com/,它依赖于msysgit和git extensions,可以在官方网站下载安装或者在visual studio扩展管理里面搜索git进行安装。
Git配置
Git客户端安装好之后最好配置一个全局的用户名及邮箱:
1
2
|
git config --global user.name"Your Name Here"
git config --global user.email your_email@youremail.com
|
这个配置在新建Repository时可能会用到;另外可以通过一下命令来查看配置:
1
|
git config --list
|
Git相关资料
- Pro Git 中文版:http://git-scm.com/book/zh http://progit.org/book/zh/ 有墙,用google随便找一个PDF版直接下载
- Git Community Book 中文版:http://gitbook.liuhui998.com/index.html
- Git Magic:http://www-cs-students.stanford.edu/~blynn/gitmagic/intl/zh_cn/
- Git开发管理之道:http://blog.leezhong.com/translate/2010/10/30/a-successful-git-branch.html
- 如何高效利用GitHub:http://www.yangzhiping.com/tech/github.html
- 图解Git:http://marklodato.github.com/visual-git-guide/index-zh-cn.html
- 笔记《版本控制之道–使用Git》:http://www.nshen.net/sitelog/2011/08/03/git-note.html
- Git 故事连载:http://gitstory.wordpress.com/category/git/ Git Web Access作者写的(注意有墙)