【工具】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 用来理解企业研发流程。 这条路线比较符合真实开发成长路径。人类软件工程的奇妙之处在于,最后大家还是围绕"怎么保存一个文件的不同版本"发展出了一整套组织管理学。

相关推荐
zho_uzhou8 小时前
Git入门概念
git
7177779 小时前
基于 Gitee 的软件成分分析(SCA)工具选型与集成参考
人工智能·gitee
71777715 小时前
国产 AI Coding 平台推荐:以 Gitee 为基准的中文研发场景选型对比
人工智能·gitee
爱奥尼欧17 小时前
【Git】远程分支删了本地还在、两个分支历史不相干?两招故障排解
开发语言·git
Java后端的Ai之路17 小时前
Git冲突完整排查与实战:本地修改覆盖报错到成功推送全流程复盘
开发语言·人工智能·git·python·pop
snow@li18 小时前
服务器运维:K3S 下 Jenkins ↔ GitLab 的 CI/CD 闭环 / 访问成功
运维·gitlab·jenkins
一个心烑18 小时前
配置项目git的 SSL 证书
git·网络协议·ssl
IT从业者张某某1 天前
【鸿蒙PC命令行适配】GitUI 移植的工程实践:双 Git 引擎(libgit2/gitoxide)的鸿蒙适配之路
git·华为·harmonyos
xinjia_ctrl1 天前
暑假实习总结
git·后端·spring·maven·intellij-idea
Molesidy1 天前
【Git】分别给出添加到Keil工程和IAR工程中的gitnore文件以便不跟踪编译文件的git记录
git·vscode·插件