第 15 章:Git 基础、差异与恢复意识
建议学时:2 小时|状态:命令按本地独立仓库设计
学习目标
- 初始化仓库并配置身份;
- 理解工作区、暂存区和提交;
- 在恢复前先查看差异和状态。
概念图
概念图 / 文本
工作区 → git add → 暂存区 → git commit → 本地历史初始化
在 Ubuntu Bash 的综合项目目录:
Ubuntu Bash
cd ~/projects/linux-learning-notes
git init
git status
git config user.name "Your Name"
git config user.email "you@example.invalid"使用示例域名不会发送邮件。若你要公开提交,填写愿意公开的身份。
三个区域
概念图 / 文本
工作区 --git add--> 暂存区 --git commit--> 历史Ubuntu Bash
git status
git diff
git add README.md
git diff --staged
git commit -m "docs: add project introduction"
git log --oneline --decorate -5提交前先看 git diff --staged。提交成功不证明应用运行,仍需功能验证。
安全恢复
Ubuntu Bash
git restore --staged FILE
git restore FILE第一条取消暂存,保留工作区内容;第二条丢弃未提交的文件修改。执行第二条前必须确认差异。不要把 git reset --hard 或 git clean -fd 当作普通清理命令。
.gitignore
忽略可重建产物,不忽略重要源文件:
项目文件 · .gitignore
.DS_Store
*.log
.env真正的密钥即使被忽略也不应长期明文保存。若密钥已提交,删除文件不能撤销泄露,必须轮换密钥。
实验
完成两次小提交:第一次加入说明,第二次修改标题。使用 git show --stat 和 git diff HEAD~1 比较,不回滚。
预期结果:git log --oneline 至少显示两次提交,git diff HEAD~1 只展示第二次练习中预期的变化。
故障分支
- Git 不知道身份:只在当前仓库配置教学身份,避免无意修改全局配置。
- add 了错误文件:用
git restore --staged取消暂存并保留内容。 - 准备丢弃改动:先保存 status 和 diff,确认没有他人工作。
自测
git diff和git diff --staged看哪里?- 为什么恢复前先查看 status/diff?
- Git 提交成功是否等于网站功能成功?
答案见答案索引。