news 2026/8/16 21:59:11

ZZ — Git 速查表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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 initgit 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当前提交和上一条的差异

撤销决策表

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

想撤销? ├─ 只改了工作区(没 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 pullfetch + 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 记录
删一条 stashgit 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 文件名逐行显示提交者和时间
二分找 buggit bisect start自动 halves 法定位问题提交
误删了没 add 的文件git clean -fd清除未跟踪文件(先git clean -fdn预览)

容易混淆的命令对比

对比区别
git resetvsgit revertreset 是回退指针(改历史),revert 是新增一个反向提交(不改历史)
git mergevsgit rebasemerge 保留分叉,rebase 把历史拉成一条线
git fetchvsgit pullfetch 只下载,pull = fetch + merge
git restorevsgit resetrestore 恢复文件内容,reset 恢复提交指针
git restorevsgit checkout --功能一样,restore 是新版拆出来的,更明确
git branch -dvsgit branch -D小写检查是否合并,大写强制删
git stash popvsgit stash applypop 恢复并删 stash,apply 只恢复不删
git reset --softvs--mixedvs--hardsoft 只动 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 --mergedgrep -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月份就上大学了,相对他说, 大学里人生会打开新的一页,那里有更广阔的世界,也有更多要自己做主的时刻——学习、交友、选择、起起落落,都会一点点变成你自己的故事。

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/16 21:47:09

【无标题】大陆地区如何安装istio以及kind如何导入镜像

大陆如何下载istio压缩包wget --no-check-certificate https://github.com/istio/istio/releases/download/1.30.3/istio-1.30.3-linux-amd64.tar.gz带国内镜像仓库安装demo配置istioctl install --set profiledemo --set hubm.daocloud.io/docker.io/istio -y把本地 Docker 里…

作者头像 李华
网站建设 2026/8/16 21:43:32

从机器人项目看软件工程思维:模块化、状态机与代码品味

1. 从“能跑就行”到“优雅运行”&#xff1a;一个机器人项目的启示几年前&#xff0c;我和几个朋友一起捣鼓过一个桌面机器人项目&#xff0c;我们内部叫它“Clawdbot”。它的物理形态很简单&#xff0c;就是一个用舵机驱动的机械爪&#xff0c;加上几个轮子&#xff0c;能在桌…

作者头像 李华
网站建设 2026/8/16 21:34:52

从Ventoy启动盘制作到DiskGenius实战:Windows系统引导修复全攻略

1. 项目概述&#xff1a;从PE制作到引导修复的完整闭环如果你曾经因为Windows系统崩溃、引导丢失而手足无措&#xff0c;看着屏幕上冰冷的“No bootable device”或“Boot Manager”错误提示感到绝望&#xff0c;那么这篇文章就是为你准备的。我将带你走完从零制作一个纯净、强…

作者头像 李华
网站建设 2026/8/16 21:33:48

Effective Command-line Interface Fuzzing with Path-Aware Large Language Model Orchestration

文章核心总结与创新点 一、主要内容 本文提出了一种名为 PILOT(Path-guided, Iterative LLM-Orchestrated Testing) 的新型命令行界面(CLI)模糊测试框架,旨在解决现有CLI模糊测试工具难以生成语义丰富的选项组合和输入文件、无法触及深层嵌入式目标函数的问题。 核心目…

作者头像 李华
网站建设 2026/8/16 21:32:05

Linux---网络--应用层协议HTTP(一)

认识url URL 统一资源定位符&#xff08;Uniform Resource Locator&#xff09;&#xff0c;简单说就是互联网上资源的 “地址”。 网页、图片、视频、文件在网上的门牌号码&#xff0c;浏览器靠它找到对应的内容。 如下就是百度的URL 百度一下&#xff0c;你就知道全球领先的…

作者头像 李华