Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Update code hosting platform section #33

Merged
merged 10 commits into from
Feb 10, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .markdownlint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"MD046": false,
"MD013": false,
"default": true
}
Binary file added docs/assets/Dashborad.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/createrepo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/gitClone.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/repo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file removed docs/ch5/sec1/git-guidance.md
Empty file.
170 changes: 100 additions & 70 deletions docs/ch5/sec1/subsec2/code-hosting-platforms.md
Original file line number Diff line number Diff line change
@@ -1,98 +1,128 @@
# 代码托管平台简介

> 本课程旨在让学生了解如何使用代码托管平台(如 GitHub、Gitee 等)进行代码管理与协作,掌握平台的基本功能和常用操作。
> 本子节旨在让学生了解如何使用代码托管平台(如 GitHub、Gitee 等)进行代码管理与协作,掌握平台的基本功能和常用操作。

---

## 常用代码托管平台
## 什么是代码托管平台

以下是常见的代码托管平台及其特点:

=== "GitHub"
- **简介**: 全球最大的代码托管平台,支持 Git 版本控制。
- **功能**:
- 代码托管
- 问题跟踪(Issues)
- 拉取请求(Pull Requests)
- 代码审查
- 项目管理
- **适用场景**: 开源项目、团队协作。

=== "Gitee"
- **简介**: 中国本土的代码托管平台,功能与 GitHub 类似。
- **功能**:
- 代码托管
- 问题跟踪
- 拉取请求
- 代码审查
- 项目管理
- **适用场景**: 国内开发者、访问速度较快。

=== "AtomGit"
- **简介**: 新兴的代码托管平台,提供类似 GitHub 和 Gitee 的功能。
- **功能**:
- 代码托管
- 问题跟踪
- 拉取请求
- 代码审查
- 项目管理
- **适用场景**: 尝试新平台的开发者。
代码托管平台是一种基于云服务的开发协作工具,主要用于存储、管理和协同开发代码项目。它通过集成版本控制系统(如 Git)、协作工具和自动化流程,为开发者提供全生命周期的代码管理支持,是现代软件开发和开源生态的核心基础设施。

---
???+ node "类比理解--就像游戏云存档"
代码托管平台就像游戏的**云存档**功能。想象一下,你在玩游戏时,可以把游戏进度保存在本地(本地存档),但如果电脑坏了或者存档丢了,你的努力就白费了。而代码托管平台就像游戏的**云存档**,它把你的代码上传到云端服务器,即使你的电脑坏了,代码也不会丢失,随时可以从云端恢复。

在游戏中,你可以创建多个**存档点**,比如在打Boss之前存个档,如果失败了可以重新读档。代码托管平台也有类似的功能,叫做**版本控制**。每次你修改代码,都可以创建一个“存档点”(提交记录)。如果改错了,可以轻松回到之前的版本,就像读档一样。

在一些多人游戏中,你和朋友可以共享同一个游戏世界,比如《我的世界》的联机模式。代码托管平台也支持多人协作,你和队友可以同时在一个项目上工作,平台会帮你们管理各自的修改,避免冲突。就像你和朋友一起建造同一个世界,每个人都能看到对方的进度。

如果你只依赖**本地存档**,可能会因为电脑故障、误删文件等原因丢失存档。代码托管平台会自动备份你的代码,就像**云存档**一样,即使你的电脑出了问题,代码依然安全地存储在云端,随时可以恢复。而且,你可以用任何电脑或设备访问你的代码,随时随地继续开发,就像在家用主机玩,出门用手机接着玩一样方便。

举个例子:假设你正在开发一个游戏,你把代码上传到GitHub(云存档),每完成一个功能就提交一次代码(创建存档点),邀请朋友一起开发(联机模式),如果不小心删了重要代码,还可以从平台恢复之前的版本(读档)。

总结来说,代码托管平台就像游戏的**云存档**,它让你的代码更安全、更高效,还能支持多人协作。对于新手宝宝来说,学会使用代码托管平台,就像学会用云存档一样,是开发路上必备的技能!

## 平台基本功能与操作

### 浏览与搜索仓库
### 仓库以及其浏览与搜索

#### 什么是仓库

仓库(Repo)就像是一个项目的文件夹,里面包含了整个项目的所有内容,比如代码、素材、README 文档等。在代码托管平台上,代码都是以仓库的形式组织起来的。你可以把仓库想象成一个图书馆的书架,每个书架上都有不同的书(项目),而每本书里都包含了详细的内容(代码、文件等)。代码托管平台就像是一个云图书馆,任何人都可以在这里浏览、借阅,甚至贡献自己的书籍(代码)。仓库就是这个图书馆的基本单位,每个仓库属于一个用户或组织,是代码托管平台上代码的基本组织形式。

??? note "浏览仓库"
- **操作步骤**:
1. 打开平台(如 GitHub 或 Gitee)的网站。
2. 在首页或搜索栏中输入关键词,查找感兴趣的仓库。
3. 点击仓库名称进入仓库详情页面,查看代码、问题、拉取请求等内容。
#### 浏览仓库

??? tip "搜索仓库"
- **操作步骤**:
1. 在搜索栏中输入关键词(如项目名称、编程语言等)。
2. 使用过滤器(如语言、星标数、更新时间等)缩小搜索范围。
3. 点击搜索结果中的仓库名称进入详情页面。
如果你想浏览平台上的仓库(比如 GitHub 或 Gitee),可以按照以下步骤操作:

### 主要操作
1. **打开平台网站**:首先,访问 GitHub 或 Gitee 的官方网站。
2. **查找感兴趣的仓库**:在首页或搜索栏中输入你感兴趣的关键词,比如项目名称或编程语言。
3. **进入仓库详情页面**:点击你感兴趣的仓库名称,进入仓库详情页面。在这里,你可以查看代码、问题、拉取请求等内容。

#### **Fork**
!!! info "功能描述"
将别人的仓库复制到自己的账户下,便于修改和贡献。
#### 搜索仓库

- **操作步骤**:
1. 进入目标仓库页面。
2. 点击页面右上角的“Fork”按钮。
3. 等待 Fork 完成,仓库将出现在自己的账户下。
如果你想更精准地找到某个仓库,可以使用搜索功能:

#### **Star**
!!! success "功能描述"
对仓库点赞,表示对项目的支持和喜爱
1. **输入关键词**:在搜索栏中输入关键词,比如项目名称、编程语言等。
2. **使用过滤器**:为了缩小搜索范围,你可以使用过滤器,比如按语言、星标数、更新时间等进行筛选。
3. **查看搜索结果**:点击搜索结果中的仓库名称,进入仓库详情页面,查看详细信息

- **操作步骤**:
1. 进入目标仓库页面。
2. 点击页面右上角的“Star”按钮。
3. 取消 Star 只需再次点击“Star”按钮。
### 其他常见术语

???+ tip "小提示"
这些内容在本课程后续会有更详细的讲解,目前只需要熟悉基本概念即可。其实,你可以把代码托管平台类比为微博、虎扑、贴吧、小红书或 Steam 这样的平台,只不过上面分享和讨论的内容是代码。其中很多概念都是相通的。

#### 1. **复制仓库(Fork)**

- **是什么**:将别人的仓库复制到自己的账户下,就像你在微博上“转发”一条动态到自己的主页一样。
- **为什么重要**:让你可以自由修改代码,就像你可以在转发的内容上加自己的评论或修改。同时,你还可以将改进贡献回原项目。
- **使用场景**:参与开源项目、实验性修改,就像你看到一篇有趣的文章,想自己试试修改后再分享给别人。

---

#### 2. **点赞/收藏(Star)**

- **是什么**:对仓库点赞,表示支持或收藏,就像你在小红书或微博上给喜欢的帖子点个赞或收藏起来。
- **为什么重要**:方便你快速找到喜欢的项目,同时也是对开发者的鼓励,就像你收藏了一篇好文章,以后可以随时翻出来看。
- **使用场景**:收藏优质项目、支持开发者,比如你看到一个很棒的工具库,点个 Star 表示支持。

---

#### **Watch**
!!! warning "功能描述"
关注仓库,接收仓库的更新通知。
#### 3. **关注仓库(Watch)**

- **操作步骤**:
1. 进入目标仓库页面。
2. 点击页面右上角的“Watch”按钮。
3. 选择接收通知的频率(如所有活动、仅发布和评论等)。
4. 取消 Watch 只需再次点击“Watch”按钮并选择“Not watching”。
- **是什么**:关注仓库,接收更新通知,就像你在虎扑或贴吧上关注一个话题,每次有新回复都会提醒你。
- **为什么重要**:让你随时了解项目的动态,比如新功能发布或 Bug 修复,就像你关注的博主发了新内容,你会第一时间知道。
- **使用场景**:跟踪感兴趣的项目、参与社区讨论,比如你关注了一个开源项目,想随时了解它的进展。

---

#### 4. **问题跟踪(Issues)**

- **是什么**:用于报告 Bug、提出新功能或讨论任务,就像你在 Steam 社区或贴吧里发帖提问或反馈问题。
- **为什么重要**:是项目管理和协作的核心工具,帮助开发者沟通和解决问题,就像你在论坛上发帖后,其他人可以回复并提供解决方案。
- **使用场景**:报告问题、提出改进建议、讨论技术细节,比如你发现了一个 Bug,可以在 Issues 里提出来。

---

#### 5. **代码合并请求(Pull Request/Merge Request)**

- **是什么**:请求将你的代码修改合并到原项目,就像你在贴吧或论坛上写了一篇长文,希望版主把它加进精华帖里。
- **为什么重要**:是开源贡献的核心方式,让开发者可以协作改进代码,就像你写了一篇好文章,希望更多人看到并认可。
- **使用场景**:提交代码改进、修复 Bug、添加新功能,比如你修复了一个问题,可以提交 Pull Request 让原作者合并你的修改。

---

#### 6. **自动化工作流(CI/CD)**

- **是什么**:自动化测试、构建和部署的工具,就像你在 Steam 上设置了自动更新游戏,每次有新版本都会自动下载安装。
- **为什么重要**:提升开发效率,确保代码质量,就像你设置了自动回复,不用每次手动处理重复的事情。
- **使用场景**:自动化测试、持续集成/持续交付,比如每次提交代码后,自动运行测试并发布新版本。

---

## 常用代码托管平台

| **平台** | **核心特点** | **适用场景** |
|----------------|------------------------------------------------------------------------------|----------------------------------|
| **GitHub** | 全球最大开源社区,功能全面,CI/CD(GitHub Actions),私有仓库有限 | 开源项目、个人开发者、企业项目 |
| **GitLab** | 一体化 DevOps,内置 CI/CD,支持私有部署,免费版功能强大 | 企业级 DevOps、私有部署 |
| **Gitee** | 国内访问快,中文支持好,适合国内开发者,CI/CD 国内优化 | 国内开发者、企业项目、开源项目 |
| **AtomGit** | 新兴平台,简洁易用,国内访问较快 | 个人开发者、小型团队 |
| **Bitbucket** | 与 Atlassian 工具集成(Jira、Trello),CI/CD(Pipelines),私有仓库有限 | 企业团队、Atlassian 工具用户 |
| **GitLink** | CCF 官方支持,专注科研开源生态,符合国内合规标准,支持项目孵化与学术协作 | 学术研究、国内开源项目、教育领域 |

**一句话总结**:

- **GitHub**:全球开源标杆。
- **GitLab**:企业 DevOps 首选。
- **Gitee**:国内开发者的好选择。
- **AtomGit**:简洁易用的新兴平台。
- **Bitbucket**:Atlassian 生态集成。
- **GitLink**:学术开源新阵地。

## 总结

!!! summary "学习目标"
- 了解常见的代码托管平台(如 GitHub、Gitee 等)及其基本功能。
- 学会在浏览器中浏览和搜索仓库。
- 掌握平台的主要操作,如 Fork、Star、Watch 等。
- 掌握平台的基本概念,如 Fork、Star、Watch 等。

这些技能将为后续的代码开发、团队协作和开源贡献打下坚实的基础。
这些技能将为后续的代码开发、团队协作和开源贡献打下坚实的基础。
54 changes: 54 additions & 0 deletions docs/ch5/sec1/subsec3/practice.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# 实践:注册并熟悉代码托管平台 (易炜涵)

> 学生注册代码托管平台账户并熟悉其功能。注册 GitHub、Gitee 等平台的账号。了解平台的主要功能界面,并做出一些常识。

## 具体步骤

### 1. 注册账号

1. **访问平台网站**:
- GitHub: [https://github.com](https://github.com)
- Gitee: [https://gitee.com](https://gitee.com)
2. **创建账户**:
- 点击“Sign up”或“注册”按钮,按照提示填写信息完成注册。

??? tip "注册之后可以做的事"
完成 GitHub 注册后,可以做这些事:
1. **安全**:启用两步验证(2FA),绑定备用邮箱,生成 SSH 密钥;
2. **个人品牌**:设置简短易记的 ID、自己喜欢头像、技术向简介(Bio);
3. **主页优化**:创建同名仓库写 Profile README(技术栈/项目展示),Pin 6个优质仓库;
4. **学生福利**:认证 GitHub Student Pack 免费解锁 Pro 功能;

意义:提升账户安全,建立专业形象,增加曝光机会,融入开发者社区,为求职或协作积累信用资产。

### 2. 熟悉 github 平台功能

#### Dashboard 页面

注册之后登录首先看到的应该是你的 Dashboard 界面,就像下图这样,不过你的可能比较空白(😁)

![Dashboard](../../../assets/Dashborad.png)

图 1. Dashboard
{: .caption }

???+ node "Dashboard的介绍"
GitHub Dashboard 是用户登录后的主工作界面,集中显示关注仓库的动态更新、推荐项目、待处理通知(Issues/PR)、近期代码提交记录,以及个人仓库列表和团队动态,支持快速跳转到代码审查、仓库管理等功能模块。

#### repository 页面

注册之后就可以做一些操作了,比如说收藏一个仓库,就是给这个仓库一颗⭐️,可以点击[这里](https://github.com/hust-open-atom-club/intro2oss)去送出你的第一颗⭐️

![repository](../../../assets/repo.png)
图 2. Repository
{: .caption }

???+ node "repository的介绍"
在 GitHub 仓库页面中,您会看到代码文件列表、README 文件、顶部导航栏(包括 Issues、Pull Requests、Actions、Projects、Wiki)、右侧功能栏(About、Releases、Packages、Contributors),以及 Issue 页面的左侧栏(Assignees、Labels、Projects、Milestone、Development)。此外,还有 Star、Fork、Watch、Code 等功能。建议从 README 文件开始,逐步熟悉 Issues 和 Pull Requests 等协作功能。

## 总结

!!! summary "学习目标"
- 掌握代码托管平台(如 GitHub、Gitee)的注册与基本操作流程
- 熟悉 GitHub 的核心功能界面,包括 Dashboard、Repository
- 尝试使用 Star、Fork、Watch 等功能参与开源项目
Loading