横向对比

表格中的符号含义:

  • ✓ - 支持

  • ⁄ - 部分支持

  • ✘ - 不支持

  • ? - 不确定

特性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 等平台相似,非常简单。

站内搜索

没有找到内容!