第一个仓库:init、add、commit 和索引的魔力
创建第一个仓库时,我们会立即遇到一个许多人多年都无法理解的概念——暂存区(staging area)。我们将详细解析为什么需要在工作目录和历史记录之间设置这个'中间层',并通过实例展示为什么 add → commit 的两步系统能让提交更有意义,而不是随意的。
- 您将理解暂存区存在的意义,以及它如何帮助进行原子性、有意义的提交。
- 您将能够创建仓库,将文件添加到暂存区,并使用正确的提交信息进行首次提交。
- 您将学会使用 git add -p 命令,仅将文件的部分更改添加到提交中。
Phần đầu bài giảng
创建第一个仓库
- 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
Bài giảng đầy đủ dành cho thuê bao
Còn 20 slide nữa trong phiên bản đầy đủ.
Video, toàn bộ slide, ghi chú, bài kiểm tra, gia sư AI và phỏng vấn sẽ mở sau khi đăng nhập và đăng ký thuê bao.
Đăng nhập hoặc đăng ký Đăng ký thuê baoNội dung bài giảng
- 创建第一个仓库
- 深入 .git 内部
- 实践:创建代码仓库
- 文件的三种状态:为什么需要它们
- 工作目录:您的创作空间
- 索引:按逻辑组织变更
- 提交:永久保存历史记录
- Git 暂存区:提交的中转站
- 添加特定文件到暂存区
- 添加所有已修改文件
- Git 中的提交是什么
- 创建第一个提交
- 如何编写良好的提交信息
- 混合修改的问题
- Git add -p 实战演示
- 如何阅读补丁
- 为什么没有 add 的 commit 不起作用
- 一个任务,一次提交
- 一年后仍能看懂的提交信息
- 创建第一个仓库
- 暂存区:代码与提交之间的桥梁
- 创建有意义的提交
- 您的第一次提交:接下来该做什么?
Bài viết liên quan đến bài học này
- git add và git commit: cách lưu thay đổi đúng
- Lệnh Git: bảng tra cứu với ví dụ dùng hằng ngày
- Kho lưu trữ Git: cách tạo bằng git init và kết nối remote
- Tệp .gitignore: cách loại trừ tệp khỏi Git và gỡ tệp đã thêm
- Git và GitHub: khác nhau thế nào và liên hệ ra sao
Tất cả bài giảng của khóa học
- 从零开始:成为自信的Git开发者
- 为什么必须掌握Git——不懂Git就找不到工作的原因
- 安装与配置:准备首次使用Git
- 第一个仓库:init、add、commit 和索引的魔力
- 版本控制历史解读:log、diff、show 与历史记录导航
- Git分支:代码的平行宇宙
- 撤销操作详解:restore、reset、revert的正确使用与风险
- GitHub与远程仓库:将代码存入云端
- 团队协作:Fork、功能分支和拉取请求
- 代码合并冲突:不慌张,理解与解决之道
- 真实团队中的Git流程:如何选择适合的工作流
- 高级 Git 工具:rebase、stash、cherry-pick 和标签
- 期末项目:模拟真实团队开发