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 &
相关推荐
sdyeswlw3 小时前
一二三物联网医院后勤综合运维管理系统:让后勤保障更智能、更省心
运维·物联网
野生yumeko3 小时前
wsl使用git
git·ssh·wsl
初学者_xuan3 小时前
Git&GitLab安装gitlab(rocky系统)
git·gitlab
点亮一颗LED(从入门到放弃)3 小时前
设备树驱动(6)
linux
加勒比之杰克3 小时前
【操作系统原理】软硬链接与动静态库
linux·os·动静态库·软硬链接
管理大亨3 小时前
光伏大棚智慧管理:ELK数据中枢
大数据·运维·elk·elasticsearch
KingRumn3 小时前
Linux进程间通信之消息队列(POSIX)实现篇
linux·服务器
未来之窗软件服务3 小时前
幽冥大陆(五十四)ASR C语言识别到自动化软件——东方仙盟筑基期
运维·自动化·仙盟创梦ide·东方仙盟·东方仙盟自动化·东方仙盟商业开发
loosed3 小时前
ubuntu navicat17连接本机msyql8 /run/mysqld/mysqld.sock问题
linux·mysql·ubuntu·adb