最常用 Git 命令速查:三区模型、场景命令表与五个坑
适用人群:Git 零基础起步,以日常笔记仓库为练习场。 主线:先记住「三区模型」,命令自然就懂了。 1. 核心要点:先建立「三区」心智模型 核心要点:90% 的 Git 疑惑都源于不知道「文件现在在哪个区」。Git 有三个区域——工作区 → 暂存区 → 本地仓库,再加一个远程仓库。所有常用命令本质上就是在这些区之间搬东西。 工作区 暂存区 本地仓库 远程仓库 (你编辑的文件) (git add 后) (git commit 后) (GitHub 等) │ git add │ git commit │ git push │ ├──────────────▶├─────────────────▶ ├───────────────────▶ │ │◀──────────────┤◀───────────────── ├── ◀─────────────────┤ │ git restore │ │ git fetch / pull │ 区 是什么 对应命令 工作区 你正在编辑的目录 git status 里红色的文件 暂存区 下次 commit 要打包的内容 git add 之后变绿色的文件 本地仓库 已提交的历史(.git/ 目录) git log 能看到的 远程仓库 别人/其他机器上的副本 git push / git pull 打交道 2. 常用命令速查表(按场景) 2.1 首次配置与建仓 命令 作用 备注 git config --global user.name "xxx" 设置全局用户名 提交记录会显示它 git config --global user.email "xxx@xx.com" 设置全局邮箱 GitHub 用它关联头像/贡献图 git init 当前目录变成 Git 仓库 生成隐藏的 .git/ git clone <url> 克隆远程仓库到本地 自带远程连接 2.2 日常四件套(用得最多) 命令 作用 git status 看当前状态:哪些改了、哪些暂存了(最常打) git add <file> / git add . 把文件放入暂存区;. 表示全部 git commit -m "说明" 把暂存区内容打包成一次提交 git log --oneline 一行一条看提交历史 2.3 查看差异与历史 命令 作用 git diff 工作区 vs 暂存区的改动 git diff --staged 暂存区 vs 上次提交的改动 git show <commit> 看某次提交的具体内容 git blame <file> 看文件每行是谁、哪次提交写的 2.4 撤销与回退(救火) 命令 作用 危险度 git restore <file> 丢弃工作区改动(未 add) ⚠️ 改动不可恢复 git restore --staged <file> 取消暂存(add 反悔),保留改动 安全 git reset --soft HEAD~1 撤销上次 commit,保留改动在暂存区 安全,改说明重提最常用 git revert <commit> 生成一个「反向提交」抵消指定提交 ✅ 最安全,适合已 push 的场景 2.5 分支 命令 作用 git branch 列出本地分支,* 标记当前分支 git branch <名字> 新建分支(不切换) git switch <名字> 切换分支 git switch -c <名字> 新建并切换(= -b) git merge <分支> 把指定分支合并进当前分支 git branch -d <名字> 删除已合并的分支 2.6 远程协作 命令 作用 git remote -v 看远程仓库名和地址 git remote add origin <url> 关联一个远程仓库 git push -u origin main 首次推送并建立跟踪关系 git push 推送(之后简写即可) git fetch 只下载远程更新,不合并(先看看再说) git pull 下载并合并 = fetch + merge 3. 高频组合拳 # 场景1:日常保存进度(写笔记的标准流程) git status # 先看有什么变动 git add path/to/note.md # 只加想提交的文件 git commit -m "feat(模块): 添加 xx 笔记" git push # 场景2:commit 说明写错了,想重写 git reset --soft HEAD~1 # 退回但保留改动 git commit -m "正确的说明" # 场景3:某个文件改坏了,恢复到最后一次提交的状态 git restore 文件名 # 场景4:push 被拒(远程有新提交) git pull # 先拉下来合并 git push # 再推 # 场景5:实验性改动,开个分支玩 git switch -c try-something # ...随便折腾... git switch main # main 完全不受影响 4. 常见坑与误区 ⚠️ 坑 1:把不该提交的文件 add 进去了(如编辑器/助手的本地配置、进度笔记等本地配置层) → 现象:git status 里出现不想推的文件。 → 原因:git add . 会把所有文件一网打尽。 → 正确写法:精确指定文件名来 add;长期排除则写进 .gitignore;已被跟踪的用 git rm --cached 文件名 取消跟踪(本地文件保留)。 ...
豫公网安备41108202000982号