07 Git — 学习指南
学习理念:Git 不是背命令的,是理解"三棵树"模型的。 日常 90% 的操作只需 5 个命令,剩下的遇到再问 AI。
学习路径
安装 → 理解三棵树 → 常用命令 → 分支 → 远程协作
① 🟢 Git 核心概念(三棵树模型)
② 🟢 本地操作(add/commit/log/diff)
③ 🟢 分支管理(branch/merge)
④ 🟢 远程协作(push/pull/clone)本节 AI 替代率:~98% | 人工干预率:~2%
AI 擅长:写任何 Git 命令、解释冲突原因、生成 .gitignore。
人类需决策:分支策略(Git Flow / Trunk Based)。
1. Git 核心概念:三棵树模型
李永乐式比喻:Git 有三个区域,就像三个不同状态的"草稿本"——
- 工作区:你正在写字的草稿本(看到的文件)
- 暂存区:你觉得写得不错、准备提交的几页纸
- 本地仓库:已经装订好的档案本(每次提交是一个版本)
2. 安装
原始课程提供 Git-2.40.0-64-bit.exe,也可以从 git-scm.com 下载最新版。
bash
# 验证安装
git --version
# 设置身份(第一次使用必须做)
git config --global user.name "Your Name"
git config --global user.email "your@email.com"3. 本地操作
bash
# 初始化仓库
cd my-project
git init
# 查看状态(⭐ 最常用的命令,随时用)
git status
# 添加文件到暂存区
git add hello.py # 添加一个文件
git add . # 添加所有文件
# 提交到本地仓库
git commit -m "feat: 添加 hello.py"
# 查看提交历史
git log # 完整历史
git log --oneline # 一行一个提交
git log --graph # 图形化分支
# 对比差异(提交前必看)
git diff # 工作区 vs 暂存区
git diff --cached # 暂存区 vs 本地仓库
# 版本穿梭
git reset --hard HEAD^ # 回退到上一个版本
git reset --hard 提交ID # 回退到指定版本
# 查看操作历史(找回丢失的提交)
git reflog4. 分支管理
李永乐式比喻:分支就像是平行宇宙——
main主分支 = 已经上映的正式电影feature-login分支 = 正在拍的续集,拍好了再合并到主片
bash
# 查看分支
git branch # 本地分支列表
git branch -a # 所有分支(含远程)
# 创建与切换
git branch feature-login # 创建分支
git checkout feature-login # 切换到分支
git checkout -b feature-login # 创建并切换(一步到位)
# 合并
git checkout main # 先切回主分支
git merge feature-login # 合并功能分支
# 删除分支
git branch -d feature-login # 删除已合并的分支
git branch -D feature-login # 强制删除(未合并也可删)合并冲突
两个人改了同一个文件的同一行,Git 不知道该听谁的。
bash
# 出现冲突时,Git 会在文件中标记:
# <<<<<<< HEAD
# 你的修改
# =======
# 别人的修改
# >>>>>>> feature-login
# 解决步骤:
# 1. 打开文件,手动选择保留哪个版本
# 2. 删掉 <<< === >>> 标记行
# 3. git add 标记已解决
# 4. git commit 完成合并5. 远程协作
bash
# 关联远程仓库(GitHub / Gitee)
git remote add origin https://github.com/用户名/仓库名.git
# 推送
git push -u origin main # 首次推送(-u 建立关联)
git push # 之后只需 git push
# 拉取
git pull # 拉取远程最新代码(= fetch + merge)
git fetch # 只拉取不合并,先看看远程有什么
# 克隆
git clone https://github.com/用户名/仓库名.git
# 查看远程仓库
git remote -v6. .gitignore(哪些文件不该提交)
python
# 用 AI 生成 .gitignore,或者从 github.com/github/gitignore 复制
# 常见要忽略的:
__pycache__/
*.pyc
.env
.idea/
.vscode/
node_modules/
dist/
*.log7. 实际工作流
# 日常开发流程
git checkout -b feature/xxx # 1. 从 main 创建功能分支
# ... 写代码 ...
git add . # 2. 暂存修改
git commit -m "feat: xxx" # 3. 提交
git checkout main # 4. 切回 main
git pull # 5. 拉取最新代码
git merge feature/xxx # 6. 合并功能分支
git push # 7. 推送到远程AI 协作指南
AI 能做的:
- 写任何 Git 命令(包括复杂的回退、rebase)
- 解释合并冲突的原因和解决方法
- 生成 .gitignore 文件
人类需决策的:
- 分支策略:Git Flow(适合大项目)还是 Trunk Based(适合小团队)
- 代码审查流程
- 什么时候 merge 什么时候 rebase
最高效的方式:
- 日常 5 个命令记住就够:status/add/commit/push/pull
- 遇到复杂操作直接问 AI "如何撤销上一次提交"
- 把 AI 当作 Git 即时手册附录:原始资料处理说明
| 原始文件 | 处理方式 |
|---|---|
尚硅谷大模型技术之Git1.0.docx | 内容已整合 |
Git-2.40.0-64-bit.exe | 从 git-scm.com 下载最新版即可 |
| 代码目录(project-ls 等) | Git 练习项目,可跳过 |
| 视频(16 个) | 跳过 |