GitBlit 是一款基于 Java 的轻量级 Git 仓库管理工具,无需数据库支持,配置简单,非常适合中小团队使用。
一、环境检查与准备
确认 JDK 1.8 环境
GitBlit 1.9.1 版本需要 JDK 1.8 运行环境,首先验证 Java 环境:
检查Java版本
java -version
预期输出:
java version "1.8.0_xxx" Java(TM) SE Runtime Environment (build 1.8.0_xxx-xxx) Java HotSpot(TM) 64-Bit Server VM (build 25.xxx-bxx, mixed mode)
如果提示 command not found,请先安装并配置 JDK 1.8 环境变量。

二、GitBlit 安装部署
1. 下载与解压
下载地址:https://github.com/gitblit/gitblit/releases
推荐版本:gitblit-1.9.1.tar.gz(适配 JDK 1.8的稳定版)

2. 创建安装目录
sudo mkdir -p /data/gitblitcd /data/gitblit
3. 解压安装包
tar -zxvf gitblit-1.9.1.tar.gz

4. 端口检查与配置
4.1 检查 8080 端口是否被占用:
- 方法一:使用 ss 命令
sudo ss -tulpn | grep 8080 - 方法二:使用 lsof 命令
sudo lsof -i:8080

4.2 防火墙配置:
- 查看防火墙状态:
sudo ufw status - 如果8080端口未放行,执行以下命令
java
# 放行8080 TCP端口(永久生效)
sudo ufw allow 8080/tcp
# 重新加载防火墙规则(确保生效)
sudo ufw reload

5. 配置文件修改
进入 GitBlit 目录,编辑配置文件(位置在文件最后,可以键盘按大写G到文件末尾,再编辑):
cd /data/gitblit/gitblit-1.9.1
vi defaults.properties
关键配置项修改:
java
# http端口号
server.httpPort = 8080
# 修改为0代表禁用https
server.httpsPort = 0

三、启动Gitblit
1. 直接启动
cd /data/gitblit/gitblit-1.9.1
sh gitblit.sh

2. 后台启动
2.1 先查看进程:ps -ef | grep gitblit

2.2 先停止当前前台Gitblit进程,避免端口冲突
java
# 终止当前Gitblit相关进程(两个进程都要停)
kill -9 125910 125911
# 验证进程已停止(无输出则成功)
ps -ef | grep gitblit | grep -v grep
2.3 后台启动Gitblit
在 /data/gitblit/gitblit-1.9.1 目录下执行:
java
# 后台启动,日志输出到gitblit.log(方便排查问题)
nohup sh gitblit.sh > gitblit.log 2>&1 &
执行后会输出一个后台进程 ID(如 [1] 126200),说明已提交后台运行。
四、验证后台Gitblit是否启动成功
java
# 查看Gitblit后台进程(能看到java进程则成功)
ps -ef | grep gitblit | grep -v grep
# 查看启动日志(无报错则正常)
tail -f gitblit.log
正常输出示例(后台进程):
java
root 126200 1 0 15:30 ? 00:00:00 sh gitblit.sh
root 126201 126200 10 15:30 ? 00:00:03 java -cp gitblit.jar:ext/* com.gitblit.GitBlitServer --baseFold
在没有外网的情况下,你可以通过本地命令 和本地访问两种方式,确认 Gitblit 是否成功启动
1. 通过进程状态验证(最直接)
java
# 查看Gitblit父子进程是否存在
ps -ef | grep gitblit | grep -v grep
1.1 正常状态判断
- 能看到 两个进程 (
sh gitblit.sh和java -cp ...),说明进程未退出; - 多次执行命令(间隔 10 秒),若进程 ID 不变,说明服务在持续运行(没有崩溃重启)。
1.2 异常状态
- 执行后无输出 → 进程已退出,需查看日志;
- 每次执行进程 ID 都变 → 服务启动后立刻崩溃,大概率是配置或依赖问题
2. 通过本地端口监听验证(确认服务在监听端口)
Gitblit 默认监听
8080端口,用ss或netstat检查端口是否被占用(被占用说明服务在监听)
java
# 方法1:用ss命令(Ubuntu默认自带)
sudo ss -tuln | grep 8080
# 方法2:用netstat命令(若ss不存在,先安装:sudo apt install net-tools)
sudo netstat -tuln | grep 8080
2.1 正常输出示例
LISTEN 0 50 0.0.0.0:8080 0.0.0.0:*
LISTEN表示端口处于监听状态,说明 Gitblit 已启动并对外提供服务;0.0.0.0:8080表示监听所有网卡的 8080 端口。
2.2 异常输出
- 无任何输出 → 服务未监听 8080 端口,可能是服务未启动,或配置文件中修改了端口。
3. 本地访问测试(最准确,模拟浏览器访问)
在服务器本地用
curl或wget命令,访问 Gitblit 的本地地址,验证服务是否正常响应
java
# 方法1:用curl测试(查看是否返回登录页HTML内容)
curl http://localhost:8080
# 方法2:用wget测试(下载登录页,看是否成功)
wget -O gitblit_index.html http://localhost:8080
执行后,文件会保存在你当前所在的 /data/gitblit/gitblit-1.9.1 目录下。
3.1 正常响应
- 输出大量 HTML 代码 (包含
Gitblit、Login等关键词),说明服务正常,能返回登录页面; - 这等同于在浏览器访问成功。
3.2 异常响应
curl: (7) Failed to connect to localhost port 8080: Connection refused→ 服务未启动或端口错误;curl: (52) Empty reply from server→ 服务启动但异常,需查看日志排查。
4. 查看本地日志(排查启动问题)
如果以上步骤验证失败,查看 Gitblit 的本地日志,定位具体错误
java
# 查看日志最后20行(后台启动的日志在gitblit.log)
tail -n 20 gitblit.log
# 若前台启动,直接查看控制台输出;若日志文件不存在,检查启动命令是否指定日志路径
常见日志关键词:
Server started→ 启动成功Address already in use→ 端口被占用ClassNotFoundException→ 依赖缺失
如果不需要恢复Git版本库,按照以上步骤可以成功安装Gitblit
五、恢复历史已有的 Git 版本库
1. 先找到安装的Gitblit准确的仓库目录
查看默认配置文件 defaults.properties
java
# 进入Gitblit的data目录(你的路径)
cd /data/gitblit/gitblit-1.9.1/data
# 查找默认仓库目录配置
grep "git.repositoriesFolder" defaults.properties
输出示例
java
git.repositoriesFolder = ${gitblit.dataFolder}/git
-
${gitblit.dataFolder}就是你当前的data目录(/data/gitblit/gitblit-1.9.1/data); -
因此,最终的仓库目录是:
java/data/gitblit/gitblit-1.9.1/data/git
2. 已有 Git 历史版本库(.git目录或完整仓库目录)需要放到现有 Gitblit 指定的仓库目录中
2.1 复制裸库到该目录
cp -r /data/backup/GitRepository/activiti7-demo.git /data/gitblit/gitblit-1.9.1/data/git/
2.2 修改文件夹权限
java
chown -R root:root /data/gitblit/gitblit-1.9.1/data/git/
chmod -R 755 /data/gitblit/gitblit-1.9.1/data/git/

2.3 重启Gitblit让其识别仓库即可
java
# 停止现有进程
ps -ef | grep gitblit | grep -v grep | awk '{print $2}' | xargs kill -9
# 后台重启
nohup sh gitblit.sh > gitblit.log 2>&1 &
