# ===== CodeLab: Git 工作原理:工作区、暂存区与版本库 =====
# 来源: https://aoerliang.dpdns.org/articles/git-workflow
# 以下代码片段按文章出现顺序拼接, 共 3 段

# ----- 片段 1 (bash) -----
echo "# Git Demo" > readme.md     # 工作区:新建文件
git add readme.md                 # 暂存区:加入购物车
git commit -m "docs: 添加说明"     # 版本库:正式入库
git log --oneline                 # 查看已提交的历史

# ----- 片段 2 (bash) -----
git status
# 输出中的三种文件状态:
# 1. Changes not staged      → 改了但还没 add
# 2. Changes to be committed → 已 add 还没 commit
# 3. Untracked files         → 从未被 Git 跟踪的新文件

# 想看清楚"改了什么"用 diff
git diff                # 工作区 vs 暂存区
git diff --cached       # 暂存区 vs 版本库

# ----- 片段 3 (bash) -----
# 提交后发现漏了文件,想重来
git reset --soft HEAD~1     # 回到提交前,改动还在暂存区
git add missing.txt
git commit -m "完整提交"

# 只想撤销暂存,不丢改动
git reset HEAD file.txt     # 等价于 git restore --staged file.txt
