第 2 章:开发环境配置与工具准备
约 6133 字大约 20 分钟
2025-11-13
跟随课程进行环境配置
跟随以下教程,完成开发环境的配置,确保后续课程顺利进行。
作为全栈开发的基础,配置一个稳定、高效的开发环境至关重要。本章将详细介绍如何搭建 Node.js 和 Python 环境、配置 VS Code、使用 Vibe Coding 提升开发效率,以及掌握 Git 版本控制基础。
2.1 Node.js 与 Python 环境安装
全栈开发通常需要同时使用前端和后端技术栈,由于我们选定了 Nuxt.js 作为前端框架,FastAPI 作为后端框架,故需要安装 Node.js 用于前端开发,Python 用于后端开发。为了灵活管理不同版本的开发环境,我们将使用版本管理工具和包管理工具。
版本管理工具和包管理工具
版本管理工具可以帮助我们轻松切换不同版本的 Node.js 和 Python,避免版本冲突和兼容性问题,同时能够简化环境配置过程。包管理工具则用于安装和管理项目依赖,确保项目所需的库和框架能够正确安装和使用。
nvm: nvm 最初由 Tim Caswell 于 2010 年创建,当时他面临着需要在不同 Node.js 版本之间切换的痛点。有趣的是,最初的 nvm 灵感部分来自于 Ruby 的 rvm (Ruby Version Manager)。nvm 能够自动发现和列出所有可用的 Node.js 版本,这个功能最初是通过解析 Node.js 官方网站的 HTML 页面实现的,后来才改为使用 API。
pnpm: pnpm 由 Zoltan Kochan 于 2016 年创建,其核心理念是解决 npm 和 yarn 在磁盘空间使用上的效率问题。pnpm 最具创新性的特点是使用硬链接和符号链接来共享依赖,这个设计让它在磁盘空间使用上比 npm 和 yarn 节省了大量空间,有时甚至能节省 80% 以上。pnpm 以其安装速度闻名,在早期的基准测试中,它的安装速度常常比 npm 和 yarn 快 2-3 倍,这让它迅速赢得了开发者的关注。
pdm :PDM 相对较新,于 2019 年由左右 中国开发者明希(Frost Ming) 创建,最初只是傅明个人解决问题的工具。PDM 是最早完全支持 PEP 621 (项目元数据标准化) 的工具之一,这显示了它对 Python 生态系统发展的前瞻性。PDM 的设计理念是"一个工具解决所有问题",它不仅管理包依赖,还处理虚拟环境、构建过程和发布流程,这种一体化的方法在 Python 工具链中相对独特。有趣的是,PDM 的名字最初并不是"Python Development Master",而是"Python Dependency Manager"。后来随着功能的扩展,它不仅管理依赖,还能处理环境、构建和发布,所以改名为更全面的"Python Development Master"。
2.1.1 Node.js 与 pnpm 环境配置
Node.js 是构建现代前端应用的基础,使用 nvm (Node Version Manager) 可以方便地管理多个 Node.js 版本。安装 Node.js 后,我们将直接安装 pnpm 作为包管理工具:
# 访问 https://github.com/coreybutler/nvm-windows/releases 下载最新的 nvm-setup.exe
# 运行安装程序,按照提示完成安装
# 打开新的命令提示符或 PowerShell,验证 nvm 安装
nvm version
# 安装 Node.js LTS 版本
nvm install lts
# 使用安装的 LTS 版本
nvm use lts
# 验证 Node.js 安装
node --version
npm --version
# 安装 pnpm
npm install -g pnpm
# 验证 pnpm 安装
pnpm --version# 使用 Homebrew 安装 nvm(推荐)
brew install nvm
# 或者使用 curl 安装
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
# 配置 nvm 环境(将以下内容添加到 ~/.zshrc 或 ~/.bashrc)
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # 加载 nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # 加载 nvm bash_completion
# 重新加载配置文件
source ~/.zshrc # 或 ~/.bashrc
# 安装 Node.js LTS 版本
nvm install --lts
nvm use --lts
# 验证安装
node --version
npm --version
# 安装 pnpm
npm install -g pnpm
pnpm --version# 使用 curl 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
# 或者使用 wget
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
# 重新加载配置文件
source ~/.bashrc # 或 ~/.zshrc
# 安装 Node.js LTS 版本
nvm install --lts
nvm use --lts
# 验证安装
node --version
npm --version
# 安装 pnpm
npm install -g pnpm
pnpm --version2.1.2 Python 环境配置(使用 PDM)
PDM (Python Development Master) 是一个现代化的 Python 包管理器,它不仅可以管理包依赖,还能管理 Python 环境。使用 PDM 可以简化 Python 项目的开发流程:
# 方法 1: 使用 PowerShell 安装
(Invoke-WebRequest -Uri https://pdm.fming.dev/install-pdm.py -UseBasicParsing).Content | python -
# 方法 2: 使用 pip 安装
pip install --user pdm
# 验证 PDM 安装
pdm --version
# 创建并初始化项目
mkdir my-python-project
cd my-python-project
pdm init
# 安装依赖
pdm add fastapi uvicorn
# 安装开发依赖
pdm add -d pytest black
# 运行项目
pdm run python main.py# 方法 1: 使用 Homebrew 安装(推荐)
brew install pdm
# 方法 2: 使用脚本安装
curl -sSL https://pdm.fming.dev/install-pdm.py | python3 -
# 方法 3: 使用 pip 安装
pip install --user pdm
# 验证安装
pdm --version
# 创建并初始化项目
mkdir my-python-project && cd my-python-project
pdm init
# 安装依赖
pdm add fastapi uvicorn
# 安装开发依赖
pdm add -d pytest black
# 运行项目
pdm run python main.py# 方法 1: 使用脚本安装
curl -sSL https://pdm.fming.dev/install-pdm.py | python3 -
# 方法 2: 使用 pip 安装
pip install --user pdm
# 确保将用户安装目录添加到 PATH
export PATH="$HOME/.local/bin:$PATH"
# 验证安装
pdm --version
# 创建并初始化项目
mkdir my-python-project && cd my-python-project
pdm init
# 安装依赖
pdm add fastapi uvicorn
# 安装开发依赖
pdm add -d pytest black
# 运行项目
pdm run python main.pyPDM 的优势:
- 同时管理包依赖和虚拟环境
- 支持 PEP 621 标准的项目元数据
- 提供锁文件确保依赖版本一致性
- 支持多 Python 版本
- 更快的安装速度和更小的存储空间占用
说到 pdm 的开发者
这就不得不提到 PyCon China 这个活动了!如果你也对 Python 感兴趣,不妨去参加这个活动,与其他开发者交流学习。甚至有可能在活动中见到 pdm 开发者本人!这个活动在近俩年都在上海长宁上海对外经贸大学古北校区综合楼进行,是一个非常有价值的机会。
2.2 VS Code 及必要插件配置
Visual Studio Code (VS Code) 是一款强大的代码编辑器,通过配置合适的插件和设置,可以显著提高全栈开发效率。下面介绍本课程推荐的插件和工作区配置。
这就是传说中的微软大战代码编辑器
2.2.1 安装
这个总不需要教吧?
我就是需要你教!
# 访问 https://code.visualstudio.com/Download 下载最新版本的 VS Code
# 运行安装程序,按照提示完成安装
# 打开 VS Code
code# 访问 https://code.visualstudio.com/Download 下载最新版本的 VS Code
# 运行安装程序,按照提示完成安装
# 打开 VS Code
code# 访问 https://code.visualstudio.com/Download 下载最新版本的 VS Code
# 运行安装程序,按照提示完成安装
# 打开 VS Code
code2.2.2 必需插件列表
针对全栈开发,我们推荐安装以下分类插件:
{
"前端开发": [
"Vue.volar", // Vue 3 语言支持(提供语法高亮、智能提示和错误检查)
"bradlc.vscode-tailwindcss", // Tailwind CSS 智能提示(自动补全类名和语法)
"Nuxtr.nuxtr-snippets", // Nuxt 3 代码片段(快速生成 Nuxt 相关代码结构)
"ms-vscode.vscode-typescript-next" // TypeScript 最新特性支持
],
"后端开发": [
"ms-python.python", // Python 语言支持
"ms-python.vscode-pylance", // Python 智能提示(增强的类型检查和代码分析)
"tamasfe.even-better-toml", // TOML 配置文件支持(用于项目配置文件)
],
"通用工具": [
"GitHub.copilot", // AI 代码补全(基于上下文智能生成代码)
"eamodio.gitlens", // Git 增强(可视化 Git 历史和代码作者信息)
"ms-vscode.vscode-settings-cycler", // 设置切换(快速切换主题或其他设置)
"usernamehw.errorlens" // 行内错误提示(直接在代码行显示错误信息)
]
}2.2.3 安装插件的方法
- 打开 VS Code
- 点击左侧边栏的扩展图标(或按
Ctrl+Shift+X) - 在搜索框中输入插件名称
- 点击"安装"按钮
2.2.4 VS Code 工作区配置
为了优化开发体验,建议在项目根目录创建 .vscode/settings.json 文件,并添加以下配置:
// .vscode/settings.json
{
// TypeScript 配置
"typescript.preferences.includePackageJsonAutoImports": "auto", // 自动从 package.json 导入
"typescript.suggest.autoImports": true, // 智能提示自动导入
// 保存时自动执行的操作
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true, // 保存时自动修复 ESLint 错误
"source.organizeImports": true // 保存时自动整理导入语句
},
// 文件关联
"files.associations": {
"*.css": "tailwindcss" // 将所有 CSS 文件视为 Tailwind CSS
},
// Emmet 配置(快速生成代码片段)
"emmet.includeLanguages": {
"vue": "html" // 在 Vue 文件中支持 HTML 的 Emmet 功能
},
"Nuxt Component": {
"prefix": "ncomp",
"body": [
"<template>",
" <div class=\"${1:component-name}\">",
" $2",
" </div>",
"</template>",
"",
"<script setup lang=\"ts\">",
"// Props 定义",
"const props = defineProps<{",
" $3",
"}>();",
"",
"// Emits 定义",
"const emit = defineEmits<{",
" ($event: '${4:event-name}'): void",
"}>();",
"",
"// 组件逻辑",
"$5",
"</script>",
"",
"<style scoped>",
".${1:component-name} {\n $6\n}",
"</style>"
],
"description": "创建 Nuxt 3 组件"
}
}2.2.4.1 代码片段使用技巧
- 快速触发:在编辑器中输入前缀(如
npage),然后按 Tab 键即可生成代码 - 光标导航:使用 Tab 键在预设的光标位置(
$1,$2, ...)之间跳转 - 自定义扩展:根据项目需求创建更多专用代码片段
- 共享代码片段:将代码片段文件添加到项目仓库,与团队成员共享
2.2.4.2 导入和导出代码片段
- 导出:找到并复制代码片段 JSON 文件
- 导入:将代码片段 JSON 文件粘贴到相应目录
- 全局代码片段位置:
~/.config/Code/User/snippets/(Linux/Mac)或%APPDATA%\Code\User\snippets\(Windows) - 项目代码片段位置:
.vscode/目录
- 全局代码片段位置:
似乎需要重构有关 VSCode 的课程文档
纯文字没有图的文档似乎实在是太难受了,需要找一个机会给这里的课程文档添加一些图。
2.3 Vibe Coding(氛围编程)与 AI 辅助开发
AI 虽好,谨慎使用!
我见过不少在 AI 辅助下开发,却没有意识到 AI 的能力限制和局限性,导致代码质量下降、开发效率降低、写出一大堆屎的情况。
对此我的意见是,AI 辅助开发应该作为一种辅助工具,而不是完全替代开发人员的角色。正确配置和使用 AI 工具,能够减少部分重复劳动,而真正的算法和创新,依旧需要开发人员的参与。
例如,这篇教程就是在 AI 的帮助下编写完成的,脚本代码、排版和部分趣闻趣事由 AI 完成,而我则负责大纲内容导向和相关细节完善,确保了教程编写速度的同时,还保证了文章的质量。
Vibe Coding(氛围编程)是一种结合 AI 工具提升开发效率的现代编程方式,通过合理配置提示词、MCP(模型控制程序)等元素,可以充分发挥 AI 在代码生成、问题解决和知识查询方面的能力。下面将介绍如何配置和使用相关工具。
2.3.1 核心概念解析
- 氛围编程:创建一个高效的开发环境,结合 AI 工具、代码片段和环境配置,使开发过程更加流畅和愉悦
- 提示词工程:设计高质量的提示词,引导 AI 生成准确、有用的代码和解答
- MCP (Model Control Program):模型控制程序,用于管理和优化 AI 模型的输入输出
2.3.2 主要 AI 辅助工具介绍
本课程主要使用以下 AI 辅助开发工具:
- 豆包 Trae:字节跳动开发的 AI 编程助手,提供代码生成、解释和优化功能
- ChatGPT Copilot:基于 ChatGPT 的代码辅助工具,可以在 VS Code 中直接使用
2.3.3 豆包 Trae 的配置与使用
豆包 Trae 是一款强大的 AI 编程助手,可以通过以下方式配置和使用:
2.3.3.1 安装与基本配置
- 在 VS Code 中搜索并安装 "豆包 Trae" 插件
- 注册并登录豆包账号
- 在插件设置中配置 API 密钥和偏好参数
2.3.3.2 使用示例
示例 1:使用豆包 Trae 生成组件代码
// 示例 1:生成组件代码
// 输入提示词:"创建一个响应式的用户卡片组件,包含头像、姓名和简介"
// 豆包 Tare 会生成类似以下的代码
<template>
<div class="user-card bg-white rounded-lg shadow-md p-4 transition-transform hover:scale-105">
<img :src="user.avatar" alt="User Avatar" class="w-16 h-16 rounded-full mx-auto mb-3">
<h3 class="text-lg font-semibold text-center">{{ user.name }}</h3>
<p class="text-gray-600 text-sm text-center">{{ user.bio }}</p>
</div>
</template>
<script setup lang="ts">
interface User {
name: string;
avatar: string;
bio: string;
}
const props = defineProps<{
user: User;
}>();
</script>
<style scoped>
/* 响应式设计 */
@media (max-width: 640px) {
.user-card {
margin-bottom: 1rem;
}
}
</style>2.3.4 ChatGPT Copilot 的配置与使用
ChatGPT Copilot 是 GitHub 开发的 AI 编程助手,可以在代码编辑器中提供实时代码建议和解释。
2.3.4.1 安装与配置
- 在 VS Code 中搜索并安装 "GitHub Copilot" 插件
- 注册 GitHub 账号并订阅 Copilot 服务
- 登录并授权插件访问您的代码
2.3.4.2 使用技巧
- 输入注释描述您想要实现的功能,Copilot 会自动生成相应代码
- 在编写代码时,Copilot 会根据上下文提供智能补全建议
- 使用
Ctrl+Enter可以打开 Copilot 聊天窗口,直接与 AI 交流
2.3.5 提示词工程技巧
高质量的提示词是充分发挥 AI 编程助手能力的关键:
明确任务目标:清晰描述你想要实现的功能或解决问题
示例:"实现一个函数,计算斐波那契数列的第 n 项,要求使用动态规划算法"提供上下文信息:包含相关的技术栈、框架版本和项目约束
示例:"在 Nuxt 3 项目中,使用 TypeScript 创建一个 API 服务,用于获取用户数据"指定输出格式:告诉 AI 你希望得到的代码格式或结构
示例:"使用 Tailwind CSS v3 编写一个响应式导航栏组件,包含移动端菜单"
2.3.6 代码片段配置与使用详解
代码片段(Code Snippets)是提高编码效率的强大工具,它允许你通过简短的前缀快速生成常用代码模板。以下是详细的配置和使用指南:
2.3.6.1 创建代码片段文件
在 VS Code 中,您可以通过以下步骤创建自定义代码片段:
- 打开 VS Code
- 点击菜单栏的 "文件" > "首选项" > "用户代码片段"
- 选择 "新建全局代码片段文件" 或 "为当前项目创建代码片段文件"
- 输入文件名(例如 "nuxt.code-snippets")并点击 "确定"
2.3.6.2 代码片段语法详解
代码片段使用 JSON 格式,主要包含以下字段:
- prefix:触发代码片段的前缀
- body:代码片段的内容,可以使用特殊标记
- description:代码片段的描述
- scope:(可选)指定适用的文件类型
特殊标记说明:
$1, $2, ...:光标位置,按 Tab 键可以在位置间导航${1:default}:带默认值的光标位置\t, \n:制表符和换行符的转义字符
2.3.6.3 常用 Nuxt 3 代码片段示例
创建自定义代码片段可以显著提高编码速度,以下是一些常用的 Nuxt 3 代码片段:
示例 1:Nuxt 3 页面组件代码片段
// .vscode/nuxt.code-snippets
{
"Nuxt Page": {
"prefix": "npage", // 输入 npage 后按 Tab 键即可生成代码模板
"body": [
"<template>",
" <div>",
" <h1>$1</h1>",
" $2",
" </div>",
"</template>",
"",
"<script setup lang=\"ts\">",
"// $3",
"$4",
"</script>",
"",
"<style scoped>",
"/* 样式 */",
"$5",
"</style>"
],
"description": "创建 Nuxt 3 页面组件"
},
"Nuxt API Route": {
"prefix": "napi",
"body": [
"export default defineEventHandler(async (event) => {",
" // 获取查询参数或请求体",
" const query = getQuery(event);",
" const body = await readBody(event);",
"",
" try {\n // 业务逻辑",
" $1",
" \n return {\n success: true,\n data: $2\n };\n } catch (error) {\n return {\n success: false,\n error: error.message\n };\n }",
"});"
],
"description": "创建 Nuxt 3 API 路由"
}
}2.4 Git 版本控制基础
阅读完本节并初始化你的仓库
阅读完本节后,选择一个文件夹作为你的项目根目录,初始化你的第一个 Git 仓库。
当然你也可以不通过命令行初始化和操作仓库,而是使用图形化工具(如 GitKraken、SourceTree 等),甚至 VSCode 的插件来完成,例如我的视频教程中大多采用 VSCode 的 Git 插件进行操作。不过这都是超出本节范围的内容,你可以根据自己的需求选择合适的工具。
Git 是目前最流行的分布式版本控制系统,掌握 Git 的使用对于团队协作和代码管理至关重要。本节将介绍 Git 的基本工作流、分支策略和提交规范。
Git 的故事
起源于 Linux 内核开发:Git 是由 Linux 内核创始人林纳斯·托瓦兹 (Linus Torvalds) 在 2005 年用短短两周时间开发出来的。当时 Linux 社区与 BitKeeper(一个闭源版本控制系统)的合作关系破裂,林纳斯决定自己开发一个更好的替代品。
名字的由来:Git 这个名字在英式英语中有"蠢货"、"讨厌鬼"的意思。林纳斯解释说:"我是一个自负的混蛋,这一点不会变。我给自己的项目起名为 Git 是完全合理的。"这个名字也符合他一贯的幽默感。
分布式设计的天才:与 SVN 等集中式版本控制系统不同,Git 的分布式设计允许开发者在没有网络连接的情况下也能进行完整的版本控制操作。这个设计理念在当时非常前卫,但现在已成为行业标准。
性能优先:林纳斯在设计 Git 时非常注重性能。他要求 Git 的分支创建和合并操作必须是"零成本"的,这也是 Git 分支功能如此强大和易用的原因。
开源社区的力量:尽管 Git 最初由林纳斯创建,但它的成功很大程度上归功于全球开源社区的贡献。特别是 Junio Hamano 从 2005 年开始担任 Git 的主要维护者,对 Git 的发展做出了巨大贡献。
2.4.1 安装 Git
这个也不需要教吧?
我就是需要你教!
# 下载 Git 安装包
https://git-scm.com/download/win
# 安装 Git
双击安装包,按照提示完成安装# 使用 Homebrew 安装 Git
brew install git
# 验证安装
git --version# 使用 apt-get 安装 Git
sudo apt-get install git
# 验证安装
git --version2.4.2 Git 工作流配置
一个良好的 Git 工作流可以帮助团队高效协作,以下是项目初始化和常用操作流程:
# 1. 初始化 Git 仓库(在项目根目录执行)
git init
# 2. 创建 .gitignore 文件(见下文)
# 3. 添加文件到暂存区
git add . # 添加所有文件
git add <file_path> # 添加单个文件
# 4. 提交更改到本地仓库
git commit -m "feat: initial project setup" # 首次提交
# 5. 查看当前状态
git status
# 6. 查看提交历史
git log2.4.3 分支策略
合理的分支策略可以有效管理代码的开发、测试和发布:
# 创建并切换到开发分支
git checkout -b develop
# 创建并切换到功能分支(从 develop 分支创建)
git checkout develop
git checkout -b feature/auth # feature/功能名称
# 创建并切换到修复分支(从 develop 或 release 分支创建)
git checkout develop
git checkout -b fix/bug-123 # fix/问题描述或编号
# 合并分支(例如,将功能分支合并到 develop)
git checkout develop
git merge feature/auth
# 删除已完成的功能分支
git branch -d feature/auth2.4.4 Git 提交规范
遵循一致的提交信息规范可以提高代码维护效率,推荐使用以下格式:
# 提交信息格式:<type>: <subject>(空一行)<body>(可选)
# 常见的 type 类型:
# feat: 新增功能
# fix: 修复 bug
# docs: 文档更新
# style: 代码格式调整(不影响功能)
# refactor: 代码重构(不新增功能或修复 bug)
# test: 添加或修改测试代码
# chore: 构建过程或辅助工具的变动
# 提交示例:
feat: 添加用户认证功能
添加了登录、注册和 JWT 认证功能,支持邮箱和密码登录方式。
fix: 修复文章列表分页问题
修复了当页码大于总页数时出现的空白页面问题。
docs: 更新项目文档
style: 调整代码格式
refactor: 重构用户服务模块
将用户服务拆分为更小的功能模块,提高代码可维护性。
test: 添加 API 测试用例
为用户认证 API 添加了单元测试和集成测试。
chore: 更新依赖包版本
更新了项目中的所有第三方依赖到最新稳定版。提示
小提示:你可以使用 git emoji 这个神奇的工具,在提交信息中添加表情符号,使提交信息更加生动有趣。
例如,如果你在 commit message 中输入:
:sparkles: 添加用户认证功能。这将会在 git message 中显示为:
✨ 添加用户认证功能。详情可看 git-emoji 指北
2.4.5 .gitignore 配置
.gitignore 文件用于指定 Git 应忽略的文件和目录,避免将临时文件、构建产物和敏感信息提交到仓库中:
# 前端
node_modules/ # npm 依赖
.nuxt/ # Nuxt 构建缓存
.output/ # Nuxt 输出目录
dist/ # 构建产物
# 后端
__pycache__/ # Python 字节码
*.pyc
*.pyo
*.pyd
.env # 环境变量文件
.venv # Python 虚拟环境
# 通用
.DS_Store # MacOS 系统文件
*.log # 日志文件
.idea/ # IntelliJ IDEA 配置
.vscode/ # VS Code 配置(如果不需要共享)
*.swp # Vim 临时文件
*.swo # Vim 临时文件
*.bak # 备份文件
*.tmp # 临时文件.gitignore 的重要性
我见过不少没有配置 .gitignore 文件的蠢货,将敏感信息提交到了仓库中,或者是将构建产物、node_modules 等开发环境目录文件到了仓库中。这些文件就不应该被上传!敏感信息将会泄漏你的账号密码、API 密钥等,让黑客趁虚而入,而构建产物和 node_modules 文件会占用仓库空间,影响其他开发者的下载速度,甚至是影响到其他开发者的环境。
注意事项
有的工具会在项目初始化时自动创建 .gitignore 文件,你可以根据需要进行修改。
仓库子目录下的任何 .gitignore 文件都是有效的,Git 会递归地应用这些规则,包括子目录下的文件。
请注意,.gitignore 文件只能忽略 untracked 文件,已经被跟踪的文件(即已添加到 Git 仓库的文件)是无法被忽略的。如果需要忽略已跟踪的文件,需要先将其从 Git 仓库中删除(使用 git rm --cached <file>),然后再添加到 .gitignore 文件中。
2.4.6 Git 后记
Git 是一个强大的版本控制系统,其各种高级功能多到离谱。但这里我们只能介绍一些基本操作,更多高级用法和最佳实践请参考官方文档或其他教程。
提示
实际上在工作中你总是会遇到各种 Git 问题的,但请不要被这些问题吓到,你依旧是可以通过各种搜索引擎以及自己的思考解决这些问题的。
2.5 小结
在本章中,我们学习了如何配置开发环境、初始化项目、创建分支、提交代码、查看状态和历史记录等基本操作。我们还介绍了如何使用 .gitignore 文件忽略不需要上传的文件和目录,以及如何使用提交规范保持代码的可读性和可维护性。