Gitlab hero border pattern left svg Gitlab hero border pattern right svg
GitLab
vs
Gitea
Decision Kit
Decision Kit

Summary

Gitea is a software package for self-hosting a lightweight Git server. Written in Go, Gitea is open-source under the MIT OSS license and is community managed.

Other features Gita provides are:

  • Bug tracking
  • Wikis
  • Code review

Gita Strengths:

  • Self-hosted
  • Simple
  • Written in Go
  • Free
  • Lightweight
  • Pull request and Code Reviews
  • Multiple Code Maintainers
  • Wikis and Bug Tracking

Gitea Gaps:

  • No Single Integrated DevOps Application: Gitea breaks the software development lifecycle by lacking necessary features developers need for software development such as an integrated CI/CD function
  • Missing Enterprise Features: Gitea lacks native support for key enterprise features such as security scanning and code quality checks
  • No built in Container Registry
  • Gitea provides support for Issues but can’t connect Issues related, keep Issues confidential or create a branch from an Issue
  • Gitea lacks the ability to resolve merge conflicts, revert specific commits or a revert merge request

Migrate from Gitea to GitLab:

Import your projects from Gitea to GitLab with minimal effort. Read more details here: Migrate To GitLab from Gitea

Installing both Gitea and GitLab

GitLab requires less time to install and import a repo. Here is a YouTube video that steps through a side by side installation of both GitLab and Gitea. This table summarizes the key takeaways from this video.

  Gitea GitLab
Clear download action on homepage Trial Signup
Package size ~80mb ~860mb
Minimum requirements 2CPU, 1GB RAM 2CPU, 4GB RAM
Dependencies included and setup in package  
Admin quality of life features (Let’s Encrypt, etc)
Install time 11min 7min
Time to import a repo 65s 32s
Sitespeed VisualReadiness 655ms 2.083s
Resource consumption .4Core, 2GB RAM .5Core, 4GB RAM
Feature Comparison
FEATURES

内置CI/CD

极狐GitLab 内置无需独立安装的免费 CI/CD 功能,用户可使用该功能构建、 测试和部署网站(极狐GitLab Pages)或 Web 应用。CI/CD 任务的执行结果会显示在合并请求中以方便访问。

Learn more about CI/CD

Runs with less memory and consumes less CPU power

Uses little memory, it runs fine with 512MB. Uses little CPU power since Go is a compiled language

Issues

Quickly set the status, assignee or milestone for multiple issues at the same time or easily filter them on any properties. See milestones and issues across projects.

Learn more about the Issue Tracker

Labels

Labels provide an easy way to categorize issues, merge requests, or epics based on descriptive titles as ‘bug’, or ‘documentation’.

Learn more about GitLab Labels

Milestones

Create and manage milestones at both the project and group levels, viewing all the issues for the milestone you’re currently working on, representing an Agile program increment or a release.

Learn more about Milestones

迭代

极狐GitLab 提供群组层面迭代的创建和管理能力,它支持您查看群组或项目在当前迭代中正在进行的所有议题,并确保群组下所有的子群组和项目以同样的节奏保持同步。

Learn more about Iterations

Issue Due Dates

In GitLab, you can set a due date for individual issues. This is very convenient if you have small tasks with a specific deadline.

Due dates documentation

Move Issue to Another Project

You can move issues between projects in GitLab. All links, history and comments will be copied and the original issue will reference the newly moved issue. This makes working with multiple issue trackers much easier.

Learn more about moving issues between projects

Mark Issue as Duplicate

Mark an issue as a duplicate of another issue, closing it.

Learn more about marking duplicate issues

To-Do List

When a user is mentioned in or assigned to an issue or merge request, it will be included in the user’s To-Do List, making the development workflow faster and easier to track.

Learn more about To-Do List

项目议题看板

极狐GitLab 提供议题看板功能,议题看板的每个列都基于议题跟踪器中存在的标签建立,因此它将以用户友好的方式匹配议题跟踪器状态。

Learn more about GitLab Issue Boards

时间线跟踪

极狐GitLab 提供时间线跟踪功能,您的团队可以在议题和合并请求上添加时间预估,并记录真实花费的时间。

Learn more about Time Tracking

仓库拉取镜像

创建远程 Git 服务器到本地服务器的代码仓库镜像,从而更方便的让本地派生和副本保持到最新。

Learn more about repository pull mirroring

Create new branches from issues

In GitLab, you can quickly create a new branch from an issue on the issue tracker. It will include the issue number and title automatically, making it easy to track which branch belongs to which issue.

See how in our documentation

Remote repository push mirroring

Mirror a repository from your local server to elsewhere. Push mirroring is supported via HTTP and SSH using password authentication, and using public-key authentication with SSH.

Learn more about repository push mirroring

Git LFS 2.0支持

Git LFS 支持大文件,例如音频,视频和图形文件的管理。Git LFS 2.0 文件锁定支持可帮助大型团队处理二进制文件,并与极狐GitLab 原生的文件锁定功能集成。

Learn more about Git LFS support in GitLab

Create merge request from email

Create a merge request from email by sending in the merge request title, description, and source branch name. Alternatively use patch files to create a merge request without first pushing a branch.

Create merge request from email

Git protocol v2 support

Git’s wire protocol defines how clones, fetches and pushes are communicated between the client and server. Git protocol v2 improves performance of fetch commands and enables future protocol improvements.

Learn more about Git protocol v2

Application performance monitoring

GitLab collects and displays performance metrics for deployed apps, leveraging Prometheus. Developers can determine the impact of a merge and keep an eye on their production systems, without leaving GitLab.

Learn more about monitoring deployed apps

Application performance alerts

GitLab allows engineers to seamlessly create service level indicator alerts and be notified of any desired events, all within the same workflow where they write their code.

Learn more about creating SLI alerts

项目级价值流分析

极狐GitLab 提供了一个仪表板,团队可以通过它度量从项目计划到运行监控所需的时间。极狐GitLab 能够提供这些数据是因为内置了所有相关的工具:从商业想法到持续集成,从代码审查到生产部署。

Learn more about Value Stream Analytics

群组级价值流分析

极狐GitLab 提供的群组仪表板,能让团队衡量从项目计划到运行监控所花费的时间。极狐GitLab 能够提供这些数据是因为内置了所有相关的工具:从商业想法到持续集成,从代码审查到生产部署。

Learn more about Value Stream Analytics

Built-in Container Registry

GitLab Container Registry is a secure and private registry for Docker images. It allows for easy upload and download of images from GitLab CI. It is fully integrated with Git repository management. (Codefresh will be ending their support for private docker registries as of May 1, 2020

Documentation on Container Registry

Review Apps 预览更改

在使用极狐GitLab CI/CD 的时候,您可以为每条分支新建一个运行环境,从而加速您的开发过程。为您的合并请求创建的动态环境,能够实现在真实的运行环境中预览您的分支内容。Review Apps 同时支持静态和动态 URL。

Learn more about Review Apps

环境自动停止

环境自动停止支持用户配置可选的到期日,并为 Review Apps 的环境设置该日期。

Learn more about Environments auto-stop

New features every month

GitLab is updated with new features and improvements every month on the 22nd.

One integrated tool

Other tools require the integration of multiple 3rd party tools to complete the software development lifecycle. GitLab has a completely integrated solution that covers the entire development lifecycle.

AD / LDAP integration

Sync groups, manage SSH-keys, manage permissions, authentication and more. You can manage an entire GitLab instance through the LDAP / AD integration.

More information about AD / LDAP integration

极狐GitLab 扩展支持

极狐GitLab 专业版包含对跨多个节点扩展极狐GitLab 服务的支持,以管理对系统的需求并提供冗余。极狐GitLab 提供了参考架构以便您可以轻松定制满足您需求的最佳架构。

Learn more about scaling GitLab

Deploy Boards

Deploy Boards offer a consolidated view of the current health and status of each CI/CD environment running on Kubernetes. The status of each pod of your latest deployment is displayed seamlessly within GitLab without the need to access Kubernetes.

Learn more about Deploy Boards

Automatically close issue(s) when a merge request is merged

With GitLab, you can use specific keywords to close one or more issues as soon as a merge request is merged.

Learn more about automatically closing issues

Draft merge requests

Prevent merge requests from accidentally being accepted before they’re completely ready by marking them as Draft. This gives you all the code review power of merge requests, while protecting unfinished work.

Learn more about Draft MRs

View Kubernetes pod logs

The monitoring of servers, application, network and security devices via generated log files to identify errors and problems for analysis. GitLab makes it easy to view the logs of running pods in connected Kubernetes clusters. By displaying the logs directly in GitLab, developers can avoid having to manage console tools or jump to a different interface.

Learn more about viewing Kubernetes pod logs

Leverage virtual package registries to simplify package management workflows.

A virtual registry is a collection of local, remote and other virtual registries accessed through a single logical URL.

GitLab Epic detailing the issues required to add this functionality.

Forward requests for packages not found in GitLab to npmjs.com

By default, when an NPM package is not found in the GitLab NPM Registry, the request is forwarded to npmjs.com

Check out the docs to learn more

Conan (C/C++) Repository

Conan is an open source, decentralized and multi-platform C/C++ Package Manager for developers to create and share native binaries.

Documentation on the Conan Repository

Maven (Java) Repository

GitLab’s Maven repository makes it easier to publish and share Java libraries across an organization, and ensure dependencies are managed correctly. It is fully integrated with GitLab, including authentication and authorization.

Documentation on the Maven Repository

NPM (node) Registry

GitLab’s NPM repository makes it easier to publish and share NPM packages across an organization, and ensure dependencies are managed correctly. It is fully integrated with GitLab, including authentication and authorization.

Documentation on the NPM Registry

NuGet (.NET) Repository

GitLab’s NuGet Repository allows C#/.NET developers to create, publish and share packages using the NuGet client or visual studio.

Documentation on the NuGet Repository

PyPI (Python) Repository

Python developers can set up GitLab as a remote PyPI repository and build, publish, and share packages using the PyPI client or GitLab CI/CD.

Documentation for the PyPI Repository

RPM (Linux) Repository

This planned feature will enable Linux developers to build, publish and share RPM packages alongside their source code and pipelines.

Check out the issue for additional details on implementation and timing

Debian (Linux) Repository

This planned feature will enable Linux developers to build, publish and share Debian packages alongside their source code and pipelines.

Check out the issue for additional details on implementation and timing

RubyGems (Ruby) Repository

This planned feature will enable Ruby developers to setup GitLab as a remote RubyGems repository and to build, publish and share packages using the command line or GitLab CI/CD. This will also be a valuable feature for GitLab and help with dogfooding

Check out the issue for additional details on implementation and timing

Go Proxy

This feature helps Go developers to publish and share their packages right alongside their source code and pipelines. This will also be a valuable feature for GitLab and help with dogfooding

Read the Go Proxy docs

Composer (PHP) Repository

This feature helps PHP developers to build, publish and share their packages right alongside their source code and pipelines.

Check out the docs

Use the Package Registry through REST API

Enables support for automation and integration of the GitLab Package Registry through a REST API.

Documentation on API

Git protocol v2 support

Git’s wire protocol defines how clones, fetches and pushes are communicated between the client and server. Git protocol v2 improves performance of fetch commands and enables future protocol improvements.

Learn more about Git protocol v2