Files
test-repo/docs/extra/extra1/extra1-what-is-git-and-what-is-github.md
T
sanbuphy a4b583b13f feat(docs): integrate version2 curriculum and stage-3 updates
概要
- 将 version2 分支的课程结构重构、第三阶段章节新增、示例资源迁移、高级 RAG 文档与 Vercel 部署配置等整合为 main 上的一次汇总提交

内容导航与 README 调整
- 更新 README 的总体介绍文案,引入“第零阶段 + 第一到第三阶段”的完整学习路径描述
- 将原先的“三阶段实战路径”说明替换为新版分阶段描述,突出从小游戏到跨平台复杂应用的学习节奏
- 删除已过时的“第二次更新将在分支 version2 合并到主分支”的提示,改为直接以 main 为主线
- 统一 README 顶部标题和排版风格,保证中英文导航、徽章展示等视觉结构一致

课程结构与章节导航更新
- 调整 docs 目录下的学习阶段导航结构,使 README 中的导航表与各 stage 实际目录对齐
- 补全并创建 stage-3 相关章节入口文件,用于承载高级阶段的课程内容
- 新增或更新以下章节入口:
  - 高级核心技能:
    - docs/stage-3/core-skills/3.1-mcp-claudecode-skills/index.md
    - docs/stage-3/core-skills/3.2-long-running-tasks/index.md
  - 多平台开发:
    - docs/stage-3/cross-platform/3.3-wechat-miniprogram/index.md
    - docs/stage-3/cross-platform/3.4-wechat-miniprogram-backend/index.md
    - docs/stage-3/cross-platform/3.5-android-app/index.md
    - docs/stage-3/cross-platform/3.6-ios-app/index.md
  - 个人品牌:
    - docs/stage-3/personal-brand/3.7-personal-website-blog/index.md
- 保持 stage-0、stage-1、stage-2 既有章节结构不变的前提下,对导航表格进行排版和链接校正,使整体课程地图清晰、可点击

示例与图片资源重组
- 将原先位于 docs/examples/example1/images/ 下的微信小程序示例图片,整体迁移到 stage-3 的正式课程路径中:
  - 目标路径:docs/stage-3/3.3-how-to-build-a-wechat-miniprogram/example1/images/
- 通过 rename 方式保留 git 历史关系,避免图片资源被视为完全新增,从而方便后续追踪
- 为微信小程序示例新增 index 页面:
  - docs/stage-3/3.3-how-to-build-a-wechat-miniprogram/example1/index.md
- 使该示例在“高级三:多平台开发:如何构建微信小程序”章节中有清晰的入口,对应实际实战内容

高级 RAG 与 AI 进阶文档
- 新增一篇系统介绍 RAG 的高级文档:
  - docs/stage-3/ai-advanced/3.a1-rag-introduction/extra5-what-is-rag-and-how-does-it-work-and-future.md
- 覆盖内容包括:RAG 的基本概念、典型架构、工作流程以及未来演进方向,为第三阶段的复杂应用提供知识检索基础
- 配套引入多张插图,帮助读者从架构图和流程视角理解 RAG:
  - docs/stage-3/ai-advanced/3.a1-rag-introduction/images/image1.png ~ image15.png

部署与工程配置
- 新增 vercel.json 配置文件,为项目在 Vercel 上的部署提供基础配置
  - 明确文档构建产物的输出路径和静态站点托管方式
  - 为之后的一键部署和自动化预览打下基础

依赖与锁文件更新
- 调整 package.json 中与新版文档结构和部署相关的配置,保持脚本和依赖与当前课程形态同步
- 更新 package-lock.json,以反映最新的依赖树和版本锁定状态
- 保证在执行 npm install / npm run build 时,依赖环境与 version2 中的实际使用情况一致

兼容性与行为说明
- 该提交通过 npm run build 验证,确保在整合 version2 内容后,VitePress 构建过程正常完成
- main 分支上的历史被压缩为一条有语义的“第二次大更新”提交,详细的开发过程仍保留在 version2 分支,用于后续需要时回溯
2026-01-12 12:25:44 +08:00

18 KiB
Raw Blame History

扩展知识 1 - 什么是 Git 和 GitHub

在之前的课程中,我们学习了如何使用基于 Web 的 vibe coding 工具编写代码。每次对话都会创建一个新版本的代码。但是,让我们思考一个问题:如果我们想恢复到之前的修改,有没有方便的方法?有没有一种工具可以记录我们在不同阶段的代码,使我们能够随时在不同版本之间切换和修改?

为了满足这一需求,版本控制软件应运而生。在这篇文章中,我们将介绍最著名的版本控制程序——Git——以及最好的代码托管平台——GitHub。我们将学习如何使用 Git 进行代码管理,如何从 GitHub 获取他人的代码,如何上传我们自己的代码,以及如何与他人合作进行大型项目。

无论是个人项目的版本跟踪,团队协作中的代码同步,还是为开源社区做贡献,Git 和 GitHub 都是现代开发者的必备工具。通过掌握它们,你将能够更高效地管理代码,根据需要创建检查点,在代码的不同阶段之间自由切换,并轻松处理从单个文件更改到开发大型项目的所有事务——使每一次代码迭代都可控且可追溯。

什么是 Git

Git 是由 Linux 内核开发者 Linus Torvalds 于 2005 年创建的分布式版本控制系统。其核心功能是跟踪文件的修改历史,允许开发者随时查看和回滚到以前的版本,并在与他人协作时高效地合并更改。

与早期的集中式版本控制系统相比,Git 的“分布式”特性允许每个开发者的本地设备存储代码仓库的完整历史记录。大多数操作(如提交、回滚和分支管理)都可以在不依赖中央服务器的情况下执行,这使得 Git 更灵活,更适合大规模协作和离线工作。

💡 在操作 Git 之前,让我们先了解一下什么是终端。

什么是终端?

终端本质上是一个基于文本的“计算机接入点”。在早期,图形界面(没有图标,没有鼠标点击)出现之前,用户只能通过键入文本命令与计算机交互。这种方法代代相传,成为了我们要介绍的今天的终端。

它不依赖花哨的界面,纯粹通过“命令 + 反馈”工作。这使其成为人机交互最基本和直接的方法之一。

不同系统的终端有所不同。在 Windows 上,常见的是“命令提示符 (cmd)”和“PowerShell”。你可以通过在计算机的运行/搜索框中输入“cmd”或“powershell”来启动这些命令行程序。

前者是一个较旧的工具,仅支持基本命令,如查看文件和复制,适合简单任务。后者是一个更高级的版本,可以处理复杂的操作,如进程管理和远程控制,并且还兼容 cmd 命令——使其在开发或系统管理场景中更常用。macOS 和 Linux 都默认带有“终端”,它们的命令逻辑相似,源自 Unix(贝尔实验室工程师在 20 世纪 60 年代末开发的经典计算机系统)。

终端在今天仍然至关重要,因为它的效率和广泛的兼容性。例如,一条命令可以批量重命名文件,比用鼠标重复点击快得多。此外,本地服务器、云服务器和专业开发环境通常没有图形界面,因此终端操作是必要的。许多任务,如安装各种程序(如 Git、Python、系统工具或开发依赖项)、运行代码、管理计算机进程和配置系统参数,也需要终端命令。

你可能会想,如果记不住所有那些终端命令该怎么办。事实上,随着大语言模型的快速发展,不再需要像以前那样死记硬背了。现在,你只需要在需要时询问模型(例如“如何用 Git 获取远程代码?”或“如何通过命令行删除文件夹或批量创建文件夹?”),然后从回复中复制有用的命令即可。

如何安装 Git

我们将演示在不同计算机操作系统上安装 Git 的三种方法。请根据你的系统版本按照说明进行操作:

Windows

  1. 前往 Git 官方下载页面 并下载适合你系统的安装程序:安装包。默认情况下,推荐使用 x64 安装程序。

  2. 双击安装程序并按照安装向导说明进行操作:

    1. 建议保持默认选项。如果你需要自定义,请注意以下几点:(在大多数情况下,你可以一直点击“Next”)
      • 选择 Git 使用的默认编辑器:选择你喜欢的编辑器(如 VS Code)。你可以默认选择第一个选项,即 Vim(一个文本编辑器),或选择“Visual Studio Code as Git's default editor”选项(需要预先安装 VS Code)。你可以保持默认选择并点击“Next”继续。
      • 选择如何使用 Git:这三个选项控制 Git 在系统中的可访问性。建议选择选项 2(“from command line and 3rd-party software”)——它将基本的 Git 工具添加到 PATH 中,让你可以在 Git Bash、命令提示符、PowerShell 和 IDE 中使用 Git,而不会使系统混乱。
  3. 安装后,在桌面上右键单击。如果在菜单中看到“Git Bash Here”,则安装成功。

MacOS

对于 macOS,你可以首先在终端中输入 git --version 来检查是否已经安装了 Git。如果没有,系统会提示你安装——只需按照说明完成安装即可。

  1. 方法 1:通过 Homebrew 安装 如果你安装了 Homebrew(Mac 包管理器),请打开终端并输入
    brew install git
    
  2. 方法 2:(推荐)通过 Xcode 安装: https://developer.apple.com/xcode/ ,Xcode 内置了 Git。安装后,只需按照说明继续操作。

Linux

大多数 Linux 发行版可以通过其包管理器安装 Git:

  • Ubuntu/Debian:
sudo apt update
sudo apt install git
  • CentOS/RHEL:
sudo yum install git
  • 验证安装:在终端中输入 git --version。如果显示版本号,则安装成功。

Git 初始化

安装 Git 后,你首先需要配置你的用户信息——这是使用 Git 进行版本控制的基本步骤。在终端中执行以下命令(将括号中的内容替换为你自己的信息):

# 设置全局用户名(将显示在提交记录中)
git config --global user.name "Your Name"

# 设置全局邮箱(建议使用在 GitHub/GitLab 等平台上注册的邮箱)
git config --global user.email "your.email@example.com"

Git 会将此信息嵌入到每个提交记录中,作为每次修改的“作者信息”。查看版本历史记录(例如,使用 git log)时,你可以清楚地看到谁修改了每一行代码,便于追溯责任和沟通。在协作项目中,统一的身份信息使团队成员能够快速识别谁做了哪些更改,从而提高协作效率(例如通过提交记录找到相关开发人员讨论问题)。

你可以通过在命令行中输入 git config --list 来查看当前的 Git 配置信息,以确认设置成功。

什么是 GitHub

GitHub 是一个基于 Git 的代码托管平台。它不仅为 Git 仓库提供远程存储,还包括协作工具(如 Issues、Pull Requests、Projects),使开发者更容易分享代码和协作。简而言之,Git 是一个本地版本控制工具,而 GitHub 是一个远程“代码仓库云盘 + 协作社区”。

GitHub 不仅是世界上最大的代码托管平台,也是全球最活跃、最具影响力的开源社区。这里“开源”的核心思想是任何人都可以下载并运行软件的源代码。这种模式允许世界各地的人们检查彼此的代码并进行修改,或基于此创建新项目。例如,你可以在 GitHub 上找到各种学习教程以及用于训练 GPT 模型的框架(如 PyTorch)的完整源代码。每天,无数人在全球范围内协作审查和改进代码。

许多大公司在 GitHub 上开源他们的程序或教程,以获得行业竞争优势——这也可以看作是一种广告形式。在 GitHub 社区中,项目获得的“星标 (stars)”数量是衡量其价值的主要指标;项目或组织拥有的星标越多,其可信度和影响力就越大。

在我们的课程中,支持资源和作业也将上传到专用的 GitHub 仓库。通过上传作业的过程,你将逐渐熟悉并掌握 GitHub 的使用,为未来应用程序开发中的版本控制打下坚实的基础。

注册 GitHub 账号

  1. 访问 GitHub 官网 并点击右上角的“Sign up”。
  2. 输入你的电子邮件地址(建议使用常用邮箱,因为验证和通知将发送到那里),设置密码(必须包含字母、数字和特殊字符)。
  3. 完成人工验证,按照提示验证邮箱,你的账号就创建好了。

在 GitHub 上创建你的第一个仓库

接下来,我们将创建第一个存储文件夹,也称为仓库或“repo”。

  1. Repository name:向他人显示的仓库名称。
  2. Description:仓库的详细描述。
  3. Choose visibility:对于个人仓库,如果设置为 private,只有你和特别邀请的人可以看到。如果设置为 public,所有人都可以看到。 对于组织内的仓库,如果是 Private,只有组织内的人可以看到。 如果是 Public,组织外的人也可以看到。
  4. README:通常的惯例是每个仓库都应该有一个 README 文件。你可以把它看作是仓库的完整介绍,包括使用说明、文件列表和操作方法。
  5. Add .gitignore and license
    1. .gitignore 文件告诉 Git 在上传到 GitHub 时忽略某些文件夹或文件,因此它们不会被跟踪或添加到暂存区。这对于临时测试文件、依赖包或大文件很有用。一旦指定,这些文件将不再被跟踪。
    2. license 指的是你选择的开源许可证类型。不同的许可证详细规定了他人是否可以将你的代码用于商业目的,并包含其他条款和条件。

建议勾选“Add README”,将仓库可见性设置为“Private”,并根据自己的喜好填写仓库名称和描述,然后点击“Create repository”完成创建第一个远程仓库。

之后,你将拥有一个没有任何额外文件的干净仓库。接下来你可以开始上传文件了。

获取仓库的命令是 git clone,但它需要仓库地址。你可以通过点击绿色的“Code”按钮找到仓库地址,你会看到 HTTPS 和 SSH 选项。通常,你可以使用这两种方法中的任何一种将仓库下载到本地机器(只有这样你才能修改和上传文件)。

一般来说,通过 HTTP 克隆的仓库适合临时下载和测试他人的仓库,但不建议用于自己的开发。为了更好的学习体验,你应该先设置 SSH 认证。

绑定本地 SSH

在 GitHub 中,“SSH 协议绑定”本质上意味着将你本地设备的 SSH 公钥与你的 GitHub 账号关联,允许 GitHub 通过 SSH 协议识别你的设备。这使你能够安全地操作远程仓库,而无需密码(如 clone、push 或 pull 代码)。

简单来说:这就像给你的设备一张“GitHub 专属门禁卡”。绑定后,当你的设备通过 SSH 协议访问 GitHub 仓库时,GitHub 会验证这张“门禁卡”(你的 SSH 公钥)。一旦确认为你的授权设备,你就可以直接操作——不需要每次都输入账号密码。

💡 什么是 SSH

为什么需要 SSH 协议绑定?

GitHub 支持两种主要的仓库操作协议:HTTPS 协议和 SSH 协议:

  • HTTPS 协议:每次操作(如 push)都需要输入 GitHub 账号密码(或个人访问令牌 PAT)。验证过程繁琐,且存在密码泄露风险。
  • SSH 协议:身份验证通过“密钥对”完成,因此不需要重复输入密码,且加密传输更加安全。

“SSH 协议绑定”是启用 GitHub SSH 认证的前提步骤——只有将本地 SSH 公钥“绑定”到 GitHub 账号后,GitHub 才能识别你的设备并允许对仓库进行 SSH 操作。

“绑定”的核心逻辑:SSH 密钥对的作用

SSH 认证依赖于密钥对(公钥 + 私钥),它们是匹配的加密文件。生成后,你需要将“公钥”提供给 GitHub(“绑定”),而“私钥”留在本地设备上:

  1. 私钥:存储在本地设备(如电脑)的指定目录中(通常是 ~/.ssh/),充当“你的专属钥匙”,绝不能与任何人分享。
  2. 公钥:这是一把可以公开分享的“锁”——你需要将其复制到 GitHub 账号的“SSH keys list”中(“绑定”操作)。

当你通过 SSH 操作 GitHub 仓库时(例如 git push git@github.com:xxx/xxx.git):

  • 你的本地设备使用私钥加密“操作请求”并发送给 GitHub;
  • 收到请求后,GitHub 尝试使用你之前绑定的公钥进行解密;
  • 如果解密成功,你的设备被确认为已授权,操作被允许;否则,访问被拒绝。

“绑定”的具体步骤(核心流程)

一旦你理解了原理,实际操作就很简单——核心是“生成密钥对 → 上传公钥到 GitHub”:

  1. 本地生成 SSH 密钥对

    1. 使用 Trae 获取公钥(推荐) 提示词:Help me create the SSH key needed for GitHub login. My email is your_email@gmail.com , Please return the public key for me to copy

    输入提示词后,你还需要在左侧终端按 Enter 键,否则命令会一直等待而不执行。由于 Trae 无法帮你执行任何条件判断,我们只需要一直按 Enter 即可。

    最后,你会看到右侧的 Trae 返回了它读取的公钥。你只需复制它并准备在下一步中粘贴。

    2. 手动获取公钥 打开你的本地终端(在 Windows 上使用 Git Bash 或 PowerShell;在 macOS/Linux 上使用终端),输入以下命令(将 your_email@example.com 替换为你注册 GitHub 账号时使用的邮箱):

    ssh-keygen -t ed25519 -C "your_email@example.com"
    
    1. 按 Enter 接受默认值(默认文件路径,无密码,或根据需要设置密码)。这将在 ~/.ssh/ 目录中生成两个文件:
      • id_ed25519:私钥(本地保存,绝不分享);
      • id_ed25519.pub:公钥(需要上传到 GitHub)。
  2. 将公钥“绑定”到你的 GitHub 账号

这是核心绑定步骤——将本地公钥添加到 GitHub 账号的“SSH keys list”中:

  1. 复制公钥内容:
    1. Trae
    2. Windows:用记事本打开 C:\Users<your>.ssh\id_ed25519.pub 并复制其所有内容;
    3. macOS/Linux:在终端运行 cat ~/.ssh/id_ed25519.pub 并复制所有输出(从开头的 SSH-ed25519 到结尾的邮箱)。
  2. 登录 GitHub 并进入“SSH Key Management”页面:
    1. 点击右上角头像 → Settings → 左侧菜单 SSH and GPG keys → 点击 New SSH key。
    2. 输入任何标题(例如,your local computer's SSH),然后将你刚刚获取的 SSH 公钥粘贴到这里。

  1. 验证绑定是否成功

在终端中输入以下命令(Trae 也可以做以下操作)来测试 GitHub 是否能识别你的设备:

ssh -T git@github.com
  • 如果你看到类似 Hi [your GitHub username]! You've successfully authenticated... 的内容,说明你已成功绑定密钥;
  • 如果遇到错误,通常是因为公钥复制不完整、私钥权限过高(你的本地 ~/.ssh/ 目录应仅由你读写)等。根据需要检查这些问题。

重要注意事项

如果你有多个设备(如笔记本电脑和台式机),你需要为每个设备生成单独的 SSH 密钥对,并将每个公钥绑定到同一个 GitHub 账号——每个设备都有自己的“门禁卡”。

切勿分享你的私钥(不要上传到 GitHub 或与他人分享),否则有人可能会冒充你操作你的仓库。如果私钥泄露,请立即从 GitHub 删除相应的公钥并生成新的密钥对。

绑定 SSH 后,使用 SSH 格式的仓库地址(例如 git@github.com:username/repository.git)进行操作,而不是 HTTPS 格式(例如 https://github.com/username/repository.git)。如果你之前用 HTTPS 克隆了仓库,可以用 git remote set-url origin <new> 切换协议。

使用 Trae 进行 GitHub 操作

我们已经解释了什么是 Git,什么是 GitHub,什么是 SSH,以及如何配置它。现在你可以自由使用 Trae 执行 Git 操作。首先,让我们学习如何将远程仓库克隆到本地机器。

Git clone : 下载现有仓库

你可以直接告诉它你想克隆的仓库地址

Git pull : 从远程仓库获取更新

每次更新仓库之前,由于它可能由多人维护,你需要先拉取最新的更改。之后,你可以修改并推送文件。

记得包含文件夹名称及其相对或绝对路径,以避免推送到错误的仓库。

prompt:Help me pull this repository AIID-TEST in ./AIID-TEST.

Git commit & Git push : 暂存更新并推送到 GitHub

一切准备就绪后,你可以尝试修改本地文件,在文件夹中添加或删除项目。然后,让 Trae 检测更改并帮你推送到 GitHub。

prompt:I finished. Commit and push to the repository AIID-TEST in ./AIID-TEST.

推送成功。现在你可以在 GitHub 上看到更新的内容了。

参考资料