ZZ — Git 速查表

ZZ --- Git 速查表

速查卡片,一图胜千言 ------ 忘了命令怎么用?翻这里。

三棵树

操作对照

reset 三种模式

rebase vs merge


三棵树模型(一句话版)

树 是什么 类比
工作区 你能直接看到的文件夹 桌面
暂存区(index) git add 之后、还没提交的东西 购物车
仓库(HEAD) git commit 之后的快照 已下单的记录

初始设置(3 条命令)

命令 干什么
git config --global user.name "你的名字" 告诉 Git 你是谁
git config --global user.email "你的邮箱" 告诉 Git 你的邮箱
git init 或 git clone 地址 创建仓库:从零开始 or 从远程拉

日常命令速查(按场景分组)

我刚改了代码,想提交

步骤 命令 白话
看看改了啥 git status 哪些文件动了、哪些还没 add
看具体改动 git diff 工作区和暂存区的差异
挑文件放进购物车 git add 文件名 把指定文件加到暂存区
全部放进购物车 git add . 当前目录下所有改动一起加
提交 git commit -m "说明" 把购物车结账,变成一条记录
改完再补一句 git commit --amend -m "新说明" 修改最近一次提交的说明

我想看历史

命令 白话
git log --oneline 每条提交一行,简洁
git log --oneline --graph 带分支图的提交历史
git log -5 只看最近 5 条
git diff HEAD~1 当前提交和上一条的差异

撤销决策表

先走决策流程,再查对应命令:

text 复制代码
想撤销?
├─ 只改了工作区(没 add)? → git restore 文件名
├─ 已经 add 了(没 commit)?
│   ├─ 想保留改动? → git restore --staged 文件名(取消暂存,文件还在)
│   └─ 不想要了? → git restore --staged 文件名 && git restore 文件名
├─ 已经 commit 了(没推送)? → git reset --soft HEAD~1(撤销提交,改动还在暂存区)
│   ├─ 想改完重新提交? → git reset --soft HEAD~1
│   └─ 彻底不要? → git reset --hard HEAD~1(危险!改动全丢)
└─ 已经推送了? → git revert 哈希(生成一条新提交来抵消,安全)
命令 撤销什么 改动还在吗 安全等级
git restore 文件 工作区改动 不在了 安全
git restore --staged 文件 暂存(取消 add) 在,回到工作区 安全
git reset --soft HEAD~1 最近一次提交 在,回到暂存区 较安全
git reset --mixed HEAD~1 最近一次提交 在,回到工作区 较安全
git reset --hard HEAD~1 最近一次提交 全没了 危险
git revert 哈希 指定提交 抵消掉,但历史保留 最安全

分支操作速查

场景 命令 白话
看所有分支 git branch -a 列出本地和远程分支
新建分支 git branch 分支名 只创建,不切换
切换分支 git switch 分支名 跳过去
新建+切换 git switch -c 分支名 一步到位
合并分支 git merge 分支名 把目标分支合到当前分支
变基 git rebase 分支名 把当前分支嫁接到目标分支后面
删本地分支 git branch -d 分支名 删已经合并的分支
强删本地分支 git branch -D 分支名 不管合没合并都删
摘一个提交 git cherry-pick 哈希 只拿某一条提交过来

merge vs rebase 一句话

  • merge:保留完整历史,会产生一个合并提交
  • rebase:历史更干净,但会改写提交哈希(别在公共分支上用!)

远程操作速查

场景 命令 白话
看远程地址 git remote -v 查看关联的远程仓库
添加远程 git remote add origin 地址 给远程仓库起个名
拉取远程信息 git fetch 只下载,不改工作区
拉取+合并 git pull fetch + merge,一把梭
推送 git push 把本地提交推上去
首次推送 git push -u origin 分支名 推并设置上游跟踪
强推(安全版) git push --force-with-lease 强推但有确认,比 --force 安全

临时保存速查

场景 命令 白话
临时存起来 git stash 工作区和暂存区改动先藏起来
带说明存 git stash push -m "说明" 给这堆改动起个名
看藏了什么 git stash list 列出所有 stash
拿回来 git stash pop 恢复最近一条并删除
拿回来但保留 git stash apply 恢复但不删 stash 记录
删一条 stash git stash drop 删最近一条 stash

标签

命令 白话
git tag v1.0 给当前提交打轻量标签
git tag -a v1.0 -m "说明" 打附注标签(带说明的)
git tag 列出所有标签
git push origin v1.0 把标签推到远程

紧急情况速查

紧急场景 命令 白话
搞崩了想找回去 git reflog 查所有 HEAD 移动记录,找到哈希就能恢复
恢复到某条记录 git reset --hard 哈希 配合 reflog 用,回到那个状态
哪行代码谁写的 git blame 文件名 逐行显示提交者和时间
二分找 bug git bisect start 自动 halves 法定位问题提交
误删了没 add 的文件 git clean -fd 清除未跟踪文件(先 git clean -fdn 预览)

容易混淆的命令对比

对比 区别
git reset vs git revert reset 是回退指针(改历史),revert 是新增一个反向提交(不改历史)
git merge vs git rebase merge 保留分叉,rebase 把历史拉成一条线
git fetch vs git pull fetch 只下载,pull = fetch + merge
git restore vs git reset restore 恢复文件内容,reset 恢复提交指针
git restore vs git checkout -- 功能一样,restore 是新版拆出来的,更明确
git branch -d vs git branch -D 小写检查是否合并,大写强制删
git stash pop vs git stash apply pop 恢复并删 stash,apply 只恢复不删
git reset --soft vs --mixed vs --hard soft 只动 HEAD,mixed 动 HEAD+暂存区,hard 全动

取证与调试速查

命令 白话
git reflog 所有操作的时间线,救命神器
git bisect start/end/good/bad 二分法找 bug,自动帮你定位是哪个提交引入的
git blame 文件名 看每一行是谁在哪个提交写的
git log --all --oneline --graph 全局提交图,一目了然
git show 哈希 查看某个提交的详细改动

清理速查

命令 白话
git clean -fdn 预览:哪些未跟踪文件会被删(干跑不删)
git clean -fd 真删:清除未跟踪的文件和目录
git gc 垃圾回收,压缩仓库体积
git prune 删掉不可达的对象
`git branch --merged grep -v main

高级速查

命令 白话
git worktree add ../新路径 分支名 同一仓库同时检出多个分支到不同目录
git worktree list 看当前有哪些 worktree
git worktree remove 路径 删掉一个 worktree
.git/hooks/ 里的脚本 提交前自动跑检查(pre-commit 等)
git commit --amend 改最近一次提交(内容或说明)
git rebase -i HEAD~3 交互式整理最近 3 条提交(合并、改顺序、改说明)

以 git 2.43.0 验证。演示身份:Ada Example <ada@example.com>。

参考资料:Pro Git 中文 | Git 文档 | 术语

写在最后:

这个课程是专门写给外甥的, 他今年9月份就上大学了,相对他说, 大学里人生会打开新的一页,那里有更广阔的世界,也有更多要自己做主的时刻------学习、交友、选择、起起落落,都会一点点变成你自己的故事。

不必急着把一切都想明白。先把身体照顾好,把该做的事一件件做好,遇到不懂的就问,走错了就改。真正重要的,不是一开始就完美,而是愿意认真过每一天,并在跌倒后重新站起来。

愿你入学顺利,心有所向,脚踏实地,遇见好人,也成为更好的自己。

相关推荐
lisw055 分钟前
“科学前沿极限突破计划”述评!
大数据·人工智能·学习
青蓝智慧马老师7 分钟前
想学数据分析但零基础,正确顺序不是先学 Python
大数据·人工智能·算法
2601_9629666410 分钟前
2027校招:应用统计学转制造业质量管理,SPC、MSA与数据分析怎么学
大数据·人工智能
wflynn16 分钟前
GitHub 今日推荐|open_scion:为AI代理设计的并发版本控制
git·开源·go·github·agent·coding-agents
wei0913016 分钟前
2026 企业 AI 办公工具选型指南:搭建 AI 与现有办公流程融合体系
大数据·运维·人工智能
workflower21 分钟前
AI+ 新型ICT 基础设施是企业数智化转型的基石
大数据·人工智能·机器学习·重构·云计算·汽车
镜子AI27 分钟前
镜子AI:教培机构RPA落地痛点拆解:拟人化触达与合规风控的工程化方案
大数据·人工智能·rpa
YangYang9YangYan33 分钟前
2027秋招:统计学专业如何把数据能力用在商品计划、会员运营与市场研究
大数据·人工智能
初願致夕霞37 分钟前
Git 指南
大数据·git·elasticsearch
泡干脆面就番茄41 分钟前
Hive分区表与分桶表:大数据查询提速的第一把钥匙
大数据·数据仓库·hive·hadoop