横向对比

表格中的符号含义:

  • ✓ - 支持

  • ⁄ - 部分支持

  • ✘ - 不支持

  • ? - 不确定

特性GiteaGogsGitHub EEGitLab CEGitLab EEBitBucketRhodeCode CE
开源免费
低资源开销 (RAM/CPU)
支持多种数据库
支持多种操作系统
升级简便
支持 Markdown
支持 Orgmode?
支持 CSV?
支持第三方渲染工具?
Git 驱动的静态 pages
Git 驱动的集成化 wiki✓ (cloud only)
部署令牌
仓库写权限令牌
内置容器 Registry
外部 Git 镜像
WebAuthn (2FA)?
内置 CI/CD
子组织:组织内的组织
特性GiteaGogsGitHub EEGitLab CEGitLab EEBitBucketRhodeCode CE
仓库主题描述
仓库内代码搜索
全局代码搜索
Git LFS 2.0
组织里程碑
细粒度用户角色 (例如 Code, Issues, Wiki)
提交人的身份验证?
GPG 签名的提交
SSH 签名的提交??
拒绝未用通过验证的提交
仓库活跃度页面
分支管理
建立新分支
在线代码编辑
提交的统计图表
模板仓库
特性GiteaGogsGitHub EEGitLab CEGitLab EEBitBucketRhodeCode CE
工单跟踪✓ (cloud only)
工单模板
标签
时间跟踪
支持多个负责人
关联的工单
私密工单
评论反馈
锁定讨论
工单批处理
工单看板
从工单创建分支
工单搜索
工单全局搜索
工单依赖关系
通过 Email 创建工单
服务台
特性GiteaGogsGitHub EEGitLab CEGitLab EEBitBucketRhodeCode CE
Pull/Merge requests
Squash merging
Rebase merging
评论 Pull/Merge request 中的某行代码
指定 Pull/Merge request 的审核人
解决 Merge 冲突
限制某些用户的 push 和 merge 权限
回退某些 commits 或 merge request
Pull/Merge requests 模板
查看 Cherry-picking 的更改
下载 Patch/
特性GiteaGogsGitHub EEGitLab CEGitLab EEBitBucketRhodeCode CE
支持 Webhook
自定义 Git 钩子
集成 AD / LDAP
支持多个 LDAP / AD 服务
LDAP 用户同步
SAML 2.0 service provider
支持 OpenId 连接?
集成 OAuth 2.0(外部授权)?
作为 OAuth 2.0 provider
二次验证 (2FA)
集成 Mattermost/Slack
集成 Discord
集成 Microsoft Teams
显示外部 CI/CD 的状态

Gitea

👍 推荐

Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。我现在使用的就是它。相较于 gitlab 更轻量级,内存占用更小,适合个人或小型团队使用。

docker-compose.yml
version: "3"

networks:
gitea:
external: false

services:
server:
image: gitea/gitea:1.17.3
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
restart: always
networks:
- gitea
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
在宝塔上使用 Docker 安装
  1. 在宝塔面板进入 Docker 设置页面,如图所示获取 Gitea 镜像,填最新版:gitea/gitea:latest
  2. 创建基于 Gitea 镜像的 Docker 容器,如图:
  3. 已经安装完成了,现在需要新建站点、解析域名、设置反向代理:
  4. 打开域名,进入初始化配置,配置完成即可使用。

    原文地址:https://www.bangzhujiaocheng.com/337.html

macOS 为例,输入这两行代码就可以完成本地安装:
brew tap gitea/tap https://gitea.com/gitea/homebrew-gitea
brew install gitea

Gitblit

🚫 不推荐

这是我曾在公司内网搭建供团队使用的工具,相较于前面提到的几款而言不是很推荐使用这个了。

安装 JDK

下载并安装 JDK:javase-downloads

安装并配置 Gitblit
  • 下载 Gitblit:gitblit
  • 解压 Gitblit,进入目录 ~/gitblit-1.8.0/data/defaults.properties
  • 用编辑器打开 defaults.properties
    git.repositoriesFolder = /Users/用户名/gitserver/gitRepository
    server.httpPort = 7070
启动服务

在终端中执行 gitblit.sh 脚本即可启动服务:

./gitblit.sh

建议设置开机自启动

通过 Mac 的自动化工具,将启动指令写成脚本,系统启动后自动运行脚本即可。
Windows 平台可以添加到启动计划任务中。

客户端访问

用服务器 IP + 端口号来访问。例如我的电脑的 IP 是 10.8.12.200,那么在局域网内另外一台电脑访问 http://10.8.12.200:7070 就可以看到管理页面了:

网页操作和使用 GitHub、Coding 等平台相似,非常简单。