Ubuntu环境下GitBlit安装部署与版本库迁移

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/gitblit
  • cd /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.shjava -cp ...),说明进程未退出;
  • 多次执行命令(间隔 10 秒),若进程 ID 不变,说明服务在持续运行(没有崩溃重启)。
1.2 异常状态
  • 执行后无输出 → 进程已退出,需查看日志;
  • 每次执行进程 ID 都变 → 服务启动后立刻崩溃,大概率是配置或依赖问题
2. 通过本地端口监听验证(确认服务在监听端口)

Gitblit 默认监听 8080 端口,用 ssnetstat 检查端口是否被占用(被占用说明服务在监听)

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. 本地访问测试(最准确,模拟浏览器访问)

在服务器本地用 curlwget 命令,访问 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 代码 (包含 GitblitLogin 等关键词),说明服务正常,能返回登录页面;
  • 这等同于在浏览器访问成功。
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 &
相关推荐
Yana.nice1 分钟前
openssl将证书从p7b转换为crt格式
java·linux
AI逐月6 分钟前
tmux 常用命令总结:从入门到稳定使用的一篇实战博客
linux·服务器·ssh·php
小白跃升坊33 分钟前
基于1Panel的AI运维
linux·运维·人工智能·ai大模型·教学·ai agent
跃渊Yuey1 小时前
【Linux】线程同步与互斥
linux·笔记
杨江1 小时前
seafile docker安装说明
运维
舰长1151 小时前
linux 实现文件共享的实现方式比较
linux·服务器·网络
好好沉淀1 小时前
Docker开发笔记(详解)
运维·docker·容器
zmjjdank1ng1 小时前
Linux 输出重定向
linux·运维
路由侠内网穿透.1 小时前
本地部署智能家居集成解决方案 ESPHome 并实现外部访问( Linux 版本)
linux·运维·服务器·网络协议·智能家居
树℡独1 小时前
ns-3仿真之应用层(三)
运维·服务器·ns3