【工具】git与gitee和gitlab和github等等有什么区别?

文章目录

  • [1. Git 是什么?](#1. Git 是什么?)
  • [2. GitHub 是什么?](#2. GitHub 是什么?)
      • [① 开源生态最大](#① 开源生态最大)
      • [② 全球开发者使用最多](#② 全球开发者使用最多)
  • [3. GitLab 是什么?](#3. GitLab 是什么?)
  • [4. Gitee 是什么?](#4. Gitee 是什么?)
  • [5. 三者核心区别](#5. 三者核心区别)
  • [6. 从软件开发流程看](#6. 从软件开发流程看)
  • [7. 对你现在这个 Java 网吧收费系统项目](#7. 对你现在这个 Java 网吧收费系统项目)

简单理解:

Git 是工具,GitHub/GitLab/Gitee 是基于 Git 的代码托管平台。

Git 负责"记录代码变化",这些平台负责"存代码、协作、管理项目"。人类程序员为了共享几行代码,最终造出了几个巨大的代码社交网站,互联网果然很擅长把简单事情复杂化。


1. Git 是什么?

先看最底层:

plain 复制代码
Git
                  |
        ---------------------
        |                   |
     本地仓库             远程仓库
        |                   |
     Mac/电脑        GitHub/GitLab/Gitee

Git 是一个分布式版本控制系统

例如:

你写代码:

plain 复制代码
v1版本
   |
   | 修改
   ↓
v2版本
   |
   | 修改
   ↓
v3版本

Git 可以记录:

  • 谁改的
  • 改了什么
  • 什么时候改
  • 可以回退到哪个版本

常用命令:

bash 复制代码
git add .
git commit -m "新增用户登录"
git push
git pull

2. GitHub 是什么?

GitHub

GitHub 是目前全球最大的 Git 代码托管平台。

定位:

全球程序员的代码社区

特点:

① 开源生态最大

例如:

Spring:

plain 复制代码
spring-projects/spring-framework

Linux:

plain 复制代码
torvalds/linux

都在 GitHub。

你可以:

  • fork 项目
  • 提交 issue
  • 提交 Pull Request
  • 参与开源

例如:

你发现 Spring 有 bug:

plain 复制代码
你的代码
    |
    ↓
提交PR
    |
    ↓
Spring作者审核
    |
    ↓
合并

② 全球开发者使用最多

适合:

  • 学习源码
  • 参与开源
  • 找技术资料
  • 展示个人项目

例如你的:

plain 复制代码
internet-cafe-billing-system

可以放:

plain 复制代码
github.com/lishuang/internet-cafe-billing-system

别人可以看到你的项目。


缺点:

  • 国内访问速度有时不稳定
  • 私有仓库以前限制较多(现在已经改善)
  • 国内企业有时不用

3. GitLab 是什么?

GitLab

GitLab 更偏向:

企业内部研发管理平台

它不仅是代码仓库。

它包含:

plain 复制代码
代码管理
 +
持续集成CI
 +
持续部署CD
 +
测试
 +
发布
 +
权限管理
 +
项目管理

也叫:

DevOps平台


例如公司:

plain 复制代码
开发人员
    |
    ↓
GitLab提交代码
    |
    ↓
自动编译
    |
    ↓
自动测试
    |
    ↓
自动部署服务器

这就是 CI/CD。


GitLab 可以自己部署:

比如公司服务器:

plain 复制代码
公司内网

        GitLab服务器
              |
     ----------------
     |      |       |
  开发A   开发B   测试

代码不出去。

所以:

银行、政府、大企业喜欢。


4. Gitee 是什么?

Gitee

Gitee(码云)是中国的 Git 托管平台。

定位:

国内版 GitHub

主要解决:

  • 国内访问速度
  • 中文社区
  • 国内企业使用

优势:

国内速度快

例如:

GitHub:

plain 复制代码
中国用户
 ↓
国际网络
 ↓
GitHub服务器

可能慢。

Gitee:

plain 复制代码
中国用户
 ↓
国内服务器
 ↓
Gitee

速度快。


适合:

  • 国内公司
  • 国内开源项目
  • 学习项目

5. 三者核心区别

GitHub GitLab Gitee
国家 美国 美国 中国
主要用户 全球开发者 企业团队 国内开发者
核心定位 代码社区 DevOps平台 国内代码托管
开源生态 ★★★★★ ★★★★ ★★★
企业内部部署 一般 ★★★★★ ★★★★
国内速度 一般 一般 ★★★★★
学习开源源码 ★★★★★ ★★★★ ★★★
CI/CD

6. 从软件开发流程看

例如你开发网吧收费系统:

个人学习阶段

推荐:

plain 复制代码
IDEA
 |
Git
 |
GitHub/Gitee

结构:

plain 复制代码
电脑
 |
 Git
 |
 Gitee

保存代码。


小团队

例如:

3个人开发:

plain 复制代码
开发A
 |
开发B
 |
开发C

      ↓

    GitLab

      ↓

   测试服务器

使用:

  • 分支管理
  • 权限控制
  • 自动部署

大公司

例如:

银行系统:

plain 复制代码
开发
 |
GitLab
 |
Jenkins
 |
Docker
 |
Kubernetes
 |
生产环境

7. 对你现在这个 Java 网吧收费系统项目

你的情况:

plain 复制代码
cafe-system
|
├── cafe-client
├── cafe-server
├── cafe-manager
└── cafe-common

目前属于:

个人学习 + 模拟企业项目

推荐:

第一阶段:

使用:

plain 复制代码
Git + Gitee

原因:

  • 国内访问快
  • 学习成本低

仓库:

plain 复制代码
internet-cafe-billing-system

├── cafe-client
├── cafe-server
├── cafe-manager
└── cafe-common

第二阶段:

学习企业开发:

迁移:

plain 复制代码
GitLab
+
CI/CD

学习:

  • Git Flow
  • Merge Request
  • Pipeline
  • 自动部署

第三阶段:

了解开源:

注册:

plain 复制代码
GitHub

看:

  • Spring源码
  • MyBatis源码
  • Netty源码

一句话总结:

plain 复制代码
Git
=
版本控制工具


GitHub
=
全球程序员社区


GitLab
=
企业级DevOps平台


Gitee
=
国内版代码托管平台

对于你现在学习 Spring Boot、多模块 Maven、C/S 网吧收费系统这个阶段:

Git + Gitee 起步,GitHub 用来学习源码,GitLab 用来理解企业研发流程。 这条路线比较符合真实开发成长路径。人类软件工程的奇妙之处在于,最后大家还是围绕"怎么保存一个文件的不同版本"发展出了一整套组织管理学。

相关推荐
7177776 小时前
合规与效能双升级:Gitee Team 构建关键行业软件工厂的实践方法
大数据·gitee
为伴只为你7 小时前
将已有git工程转为使用LFS
git
tju23339 小时前
Gitee PocketClaw解读:系统到适用场景的完整解读
人工智能·gitee
x-cmd9 小时前
AI 时代的 Git 革命:多 Agent 并发开发的新基础设施
git·ai·agent·代码管理·开发者工具·多智能体协作·worktree
xiaoxiangsiyan1 天前
GitLab CI/CD 自托管(EE 企业版)+ Kubernetes Runner 集群 + ArgoCD(GitOps 部署)
运维·网络·ci/cd·容器·kubernetes·gitlab·argocd
XS0301061 天前
Git远程仓库实操笔记
笔记·git·elasticsearch
Java成神之路-1 天前
Git 合并冲突完全指南:分支合并、拉取冲突、推送冲突
git
NutShell Wang1 天前
拆解 GitHub gh-stack:堆叠 PR 工作流的设计取舍与工程实现
前端·git·开源·github·代码复审·开发者工具·vibe coding
咩咩啃树皮1 天前
第62篇:Git团队协作完整流程——企业多人开发规范、分支管理、冲突解决、上线流程(最终封笔篇)
git