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