第一个仓库:init、add、commit 和索引的魔力
创建第一个仓库时,我们会立即遇到一个许多人多年都无法理解的概念——暂存区(staging area)。我们将详细解析为什么需要在工作目录和历史记录之间设置这个'中间层',并通过实例展示为什么 add → commit 的两步系统能让提交更有意义,而不是随意的。
- 您将理解暂存区存在的意义,以及它如何帮助进行原子性、有意义的提交。
- 您将能够创建仓库,将文件添加到暂存区,并使用正确的提交信息进行首次提交。
- 您将学会使用 git add -p 命令,仅将文件的部分更改添加到提交中。
จุดเริ่มต้นของบทเรียน
创建第一个仓库
- git init 创建一个隐藏的 .git 文件夹
- .git 中存储所有变更历史
- 可以在任何文件夹中创建仓库
- 现有文件变为未跟踪状态
- 比喻:在新笔记本中开始写日记
想象一下,你的项目是一本书,而仓库就是存放每一处修改的草稿本。当你运行 git init 时,你的文件夹中会出现一个隐藏的 .git 目录——这就是仓库。Git 将在其中存储所有变更历史、元数据和设置。重要的是要理解:你可以在任何时候创建仓库,即使文件夹中已经有文件。这些文件会变成未跟踪状态,稍后你可以添加它们。这就像开始写日记——你准备了一本新笔记本,但还没决定具体要记录什么内容。
深入 .git 内部
- objects:压缩的文件和提交数据
- refs:指向分支和标签的指针,就像书签
- HEAD:当前在历史记录中的位置
- config:仓库配置
- hooks:自动化脚本
让我们看看 .git 文件夹内部。这里就是 Git 的魔法所在。objects 目录中存储着所有压缩后的文件和提交。refs 文件夹包含指向分支和标签的指针——就像书中的书签。HEAD 文件显示你在历史记录中的当前位置。而 config 中存储着该仓库的配置。还有 hooks——这些是在特定事件发生时自动执行的脚本。所有这些都是在初始化时由 Git 自动创建的。虽然你很少需要直接查看这些内容,但了解其结构会在复杂情况下对你有帮助。
实践:创建代码仓库
- 在项目文件夹中打开终端
- 执行 git init
- 使用 ls -la 检查 .git 是否创建成功
- Windows系统请使用 dir /ah
- 完成!文件夹已纳入版本控制
请打开项目所在文件夹的终端。输入 git init 命令并按回车。您将看到提示,表示已初始化一个空仓库。要确认操作成功,请执行 ls -la 命令——您应该能看到隐藏的 .git 文件夹。如果您使用的是 Windows 系统,请使用 dir /ah 命令。恭喜,现在您的文件夹已经纳入版本控制了!Git 将能够跟踪您所做的所有更改。既然仓库已经创建完成,现在让我们来了解 Git 如何对文件进行分类——这是理解其工作原理的关键。
# 创建项目文件夹并进入
mkdir my_first_repo
cd my_first_repo
# 初始化仓库
git init
# 检查 .git 是否创建成功
ls -la | grep .git
บทเรียนฉบับเต็มใช้ได้เมื่อสมัครสมาชิก
ฉบับเต็มมีสไลด์เพิ่มอีก 20 สไลด์
วิดีโอ สไลด์ทั้งหมด โน้ต แบบทดสอบ AI ติวเตอร์ และการสัมภาษณ์จะเปิดหลังเข้าสู่ระบบและสมัครสมาชิก
เข้าสู่ระบบหรือลงทะเบียน สมัครสมาชิกเนื้อหาบทเรียน
- 创建第一个仓库
- 深入 .git 内部
- 实践:创建代码仓库
- 文件的三种状态:为什么需要它们
- 工作目录:您的创作空间
- 索引:按逻辑组织变更
- 提交:永久保存历史记录
- Git 暂存区:提交的中转站
- 添加特定文件到暂存区
- 添加所有已修改文件
- Git 中的提交是什么
- 创建第一个提交
- 如何编写良好的提交信息
- 混合修改的问题
- Git add -p 实战演示
- 如何阅读补丁
- 为什么没有 add 的 commit 不起作用
- 一个任务,一次提交
- 一年后仍能看懂的提交信息
- 创建第一个仓库
- 暂存区:代码与提交之间的桥梁
- 创建有意义的提交
- 您的第一次提交:接下来该做什么?
บทความเกี่ยวกับบทเรียนนี้
- git add และ git commit: วิธีบันทึกการเปลี่ยนแปลงให้ถูกต้อง
- คำสั่ง Git: ชีตสรุปพร้อมตัวอย่างสำหรับใช้ทุกวัน
- รีโพซิทอรี Git: สร้างด้วย git init และเชื่อม remote อย่างไร
- ไฟล์ .gitignore: วิธีไม่ให้ Git ติดตามไฟล์และนำไฟล์ที่เพิ่มแล้วออก
- Git และ GitHub: ต่างกันอย่างไร และเชื่อมโยงกันอย่างไร
บทเรียนทั้งหมดในคอร์สนี้
- 从零开始:成为自信的Git开发者
- 为什么必须掌握Git——不懂Git就找不到工作的原因
- 安装与配置:准备首次使用Git
- 第一个仓库:init、add、commit 和索引的魔力
- 版本控制历史解读:log、diff、show 与历史记录导航
- Git分支:代码的平行宇宙
- 撤销操作详解:restore、reset、revert的正确使用与风险
- GitHub与远程仓库:将代码存入云端
- 团队协作:Fork、功能分支和拉取请求
- 代码合并冲突:不慌张,理解与解决之道
- 真实团队中的Git流程:如何选择适合的工作流
- 高级 Git 工具:rebase、stash、cherry-pick 和标签
- 期末项目:模拟真实团队开发