GitBucket 是一个用Scala语言编写的类似Github的应用,界面非常相似。它非常容易安装–容易到你只需要把它的war文件扔到tomcat中,然后启动tomcat就直接可以访问了。或者直接java执行它就可以运行了!
现在版本(3.2)的GitBucket提供了下面的基本功能:
公有/私有Git仓库(HTTP和SSH访问,内部已经集成了SSH服务器)
在线查看和编辑仓库代码
·搜索(代码和Issue)
·Wiki
·Issues
·Fork / Pull request
·邮件通知
·活动时间线
·用户管理(管理员)
·用户组(和Github的组织类似)
·LDAP支持
·Gravatar支持
下面的特性讲会在以后的版本中支持:
·网络图
·统计
·观看次数/打星(Watch/Star)
1. 运行gitbucket
上面提到了它可以通过两种方式运行,在 release page 中下载最新的war包,直接使用java -jar gitbucket.war(当然需要1.7以上的JRE环境)就可以运行,可以指定下面几个参数:
--port=[NUMBER]
--prefix=[CONTEXTPATH]
--host=[HOSTNAME]
--gitbucket.home=[DATA_DIR]
如果没有指定–gitbucket.home,它会把数据保存在$HOME/.gitbucket下面,包括用户数据库信息以及repositories。所以只把这个目录备份就可以了,是不是很方便。
2. 配置gitbucket
打开 http://[hostname]:8080/
(如果没有指定 --port
更换端口的话),就可以看到登录界面,输入root/root登录到主界面中。在右上角Account Setting中可以设置新密码、用户信息、SSH公钥等信息,那么首先为这个超级管理员配置一个新的密码吧。
在右上角的Administration里可以添加新的用户/组,设置新的系统信息。系统信息里几个重要的配置项包括:
Base URL:用于重定向、git repository地址等。这个地址需要先设置DNS后配置,是必须要设置的。
Information:站点信息。
Account registration:是否给公众开放账户注册功能。
Default option to create a new repository:默认创建repository是public还是private。其中所有用户和访客都可以读取public repository,而只有collaborator才能读取private repository。
Anonymous access: 是否允许匿名用户访问public repository。选择deny则任何信息必须验证后才能访问。对于企业内部服务,一般选择deny阻止所有匿名用户的访问。
SSH access:是否启用SSH服务,如果使用需要每个用户在自己的User profile中上传自己的public key。另外,可以配置一个SSH服务使用的端口,默认是29418。
LDAP authentication/Notifacation email:不多作介绍了。
3. 使用repository
在创建好自己的用户登录后,左侧的new repository就可以建立新的repository。这里我们用一个README.md来初始化。
完成后就可以看到和github类似的项目首页,代码都可以在线编辑,灰常方便。比如我们来编辑README.md这个markdown语句。
我们可以通过 git clone http://[your-server-ip]:8080/git/[your-username]/[repository-name].git
来克隆这个repository(主页右侧有这个repository的HTTP和SSH的URL提示。)。之后可以通过 git push
上传本地的version。项目首页上有commits, branches和releases的历史回顾,功能很全面。
右侧项目Wiki可以让我们编辑markdown格式的wiki页面,issue可以让其他人提交issues of bugs,而Setting里可以设置我们的collaborators了:
其他先不多说了,gitbucket简单好用,向gitbucket的作者致敬!