📖 知识点
1. 交付前的 "三区" 概念
| 区域 | 说明 | 生活比喻 |
|---|---|---|
| 工作区 | 你正在改的代码 | 桌上的草稿 |
| 暂存区(staging) | git add 后,准备提交 | 放进 "待寄信封" |
| 版本库 | git commit 后,正式存档 | 寄出的存档 |
流程:改代码(工作区)→ git add(暂存区)→ git commit(版本库),代码才被 Git 正式记住。
2. git status:查看状态
git status
运行示例:
On branch master
Untracked files:
外卖App.py
nothing added to commit but untracked files present
显示当前有哪些改动。"Untracked" = 还没被 Git 跟踪的新文件。
3. git add:暂存(把文件放进 "待寄信封")
git add 外卖App.py # 暂存指定文件
git add . # 暂存所有改动(.表示全部)
运行示例(再 git status):
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: 外卖App.py
文件从 "Untracked" 变成 "to be committed",已进入暂存区。
4. git commit:提交(正式存档)
git commit -m "提交说明"
git commit -m "首次提交:创建外卖App.py"
运行示例:
[master (root-commit) abc1234] 首次提交:创建外卖App.py
1 file changed, 0 insertions(+), 0 deletions(-)
-m后面写提交说明(做了什么),这个说明很重要,以后靠它识别每次存档。提交后有了一串 ID(abc1234),这就是一个正式的版本。
⚠️ 易错提醒
提交前一定要先
git add,直接 commit 会提示 "nothing to commit"
git commit -m "说明"的-m不能省,说明要写清楚做了什么每次提交 = 一个存档点,以后能回到这里
⚔️ 剧情 Kata 实战任务
任务需求:
在 "外卖 App" 仓库里,往 "外卖 App.py" 写一点内容(用 echo 或 vim)
用
git status看状态(文件已修改 / 未跟踪)用
git add 外卖App.py暂存用
git commit -m "首次提交:创建外卖App.py"提交用
git log查看第一条提交记录(首次存档成功)
参考代码(在终端依次敲)
# 0. 进到项目仓库
cd ~/外卖App
# 1. 给代码文件写点内容
echo "def 下单(): pass" > 外卖App.py
# 2. 查看状态
git status
# 3. 暂存
git add 外卖App.py
# 4. 提交(正式存档)
git commit -m "首次提交:创建外卖App.py"
# 5. 查看提交历史
git log
运行示例:
user@linux:~/外卖App$ git status
Untracked files:
外卖App.py
user@linux:~/外卖App$ git add 外卖App.py
user@linux:~/外卖App$ git commit -m "首次提交:创建外卖App.py"
[master (root-commit) a1b2c3d] 首次提交:创建外卖App.py
1 file changed, 1 insertion(+)
user@linux:~/外卖App$ git log
commit a1b2c3d (HEAD -> master)
Author: 小孙 <sun@example.com>
Date: ...
首次提交:创建外卖App.py
💡 完成动作示意:
写内容 →
git status显示 "Untracked"(没跟踪)
git add→ 进入暂存区(变成 "to be committed")
git commit -m "首次提交..."→ 正式存档,生成版本 ID a1b2c3d
git log→ 看到第一条提交记录,"初次交付" 完成!
🧠 思考题
提交代码的完整三步是哪三步?为什么不能直接 commit(跳过 add)?
git commit -m "说明"里的说明为什么重要?团队协作时没写清说明会怎样?
行者孙Python