跳到主要内容

Git 命令速查

60 条高频 Git 命令按场景分组,命令与中文说明双向搜索。

本地计算 · 数据不出浏览器

按场景浏览或搜索:命令原文与中文说明双向匹配。<尖括号>是占位符,替换成实际值后直接粘贴到终端。

基础操作9 条

git init在当前目录初始化一个新仓库
git clone <url>克隆远程仓库到本地
git status查看工作区与暂存区状态
git add <file>把文件改动加入暂存区(-A 全部)
git commit -m "msg"提交暂存区的改动
git log查看提交历史(--oneline 单行显示)
git diff查看工作区相对暂存区的差异
git mv <old> <new>移动/重命名文件并登记改动
git rm <file>删除文件并登记(--cached 仅解除跟踪)

分支13 条

git branch列出本地分支(-a 含远程,-r 仅远程)
git branch <name>创建新分支(不切换)
git switch <name>切换分支(新命令,语义更清晰)
git switch -c <name>创建并切换到新分支
git checkout <name>切换分支或还原文件(老命令)
git checkout -b <name>创建并切换新分支(老写法)
git merge <name>把指定分支合并进当前分支
git merge --abort合并冲突时放弃本次合并,恢复现场
git rebase <base>把当前分支变基到目标之上(线性历史)
git rebase --continue解决冲突后继续变基
git cherry-pick <sha>把单个提交摘到当前分支
git branch -d <name>删除已合并的分支(-D 强制)
git worktree add ../path <branch>同一仓库检出多个工作目录,并行开发互不干扰

远程协作9 条

git remote -v查看已配置的远程仓库
git remote add origin <url>添加名为 origin 的远程仓库
git fetch拉取远程更新但不合并(--prune 顺带清理已删分支)
git pull拉取并合并(= fetch + merge)
git pull --rebase拉取并变基,避免无意义的 merge 提交
git push推送本地提交到远程
git push -u origin <branch>首次推送并建立跟踪关系
git push --force-with-lease安全强推:远程有他人新提交时拒绝(比 --force 安全)
git push origin --delete <branch>删除远程分支

暂存与提交9 条

git stash把未提交改动暂存起来(pop 恢复,list 查看)
git stash pop恢复最近一次暂存并删除该记录
git stash apply <n>恢复指定暂存但保留记录
git commit --amend修补上一次提交(改信息或补文件;已推送需强推)
git commit --fixup <sha>标记修正提交,配合 rebase --autosquash 自动归位
git restore <file>丢弃工作区改动(--staged 撤销暂存)
git reset HEAD <file>把文件移出暂存区(不丢工作区改动)
git clean -fd删除未跟踪的文件与目录(-n 先预览)
git bisect start二分定位引入 bug 的提交(start/bad/good/reset)

撤销与回退6 条

git revert <sha>生成一条反向提交抵消指定提交(安全,可推送)
git reset --soft HEAD~1撤销上次提交,改动保留在暂存区
git reset --mixed HEAD~1撤销上次提交,改动保留在工作区(默认)
git reset --hard HEAD~1撤销上次提交并丢弃全部改动(危险,不可恢复)
git reflog查看 HEAD 移动历史,找回"消失"的提交
git checkout <sha> -- <file>把单个文件还原到指定提交的版本

标签5 条

git tag列出全部标签
git tag v1.0.0创建轻量标签
git tag -a v1.0.0 -m "msg"创建附注标签(发布推荐)
git push origin v1.0.0推送单个标签(--tags 推全部)
git tag -d v1.0.0删除本地标签

查看与排查6 条

git show <sha>查看某次提交的完整改动
git blame <file>逐行查看最后修改者与提交
git log --graph --oneline --all图形化查看全部分支历史
git log -p <file>查看文件的修改历史与逐次差异
git diff --staged查看暂存区与上次提交的差异
git shortlog -sn按提交数统计贡献者

配置与进阶6 条

git config --global user.name "x"设置全局用户名(user.email 同理)
git config --global init.defaultBranch main新仓库默认分支改为 main
git config alias.co checkout配置命令别名(git co 即 checkout)
git credential-manager凭据助手管理 HTTPS 记住的账号
git describe --tags输出最近标签+提交数+短哈希,构建版本号常用
git archive --format=zip -o out.zip HEAD把某次提交导出为压缩包(不含 .git)

使用说明

这个工具解决什么问题

Git 命令靠背是不现实的——rebase 的参数、reflog 找回提交、cherry-pick 摘提交,用的时候总要想一下。这个速查表收了 60 条高频命令,按基础/分支/远程/暂存/撤销/标签/排查/配置八个场景分组,每条带一句中文说明,讲清「干什么 + 和近亲命令差在哪」。

核心能力

双向搜索:按命令片段搜(rebase、amend),也按中文意图搜(「撤销」「强推」),都是即时本地过滤。

场景分组:不记得命令名时按组顺着找;「撤销与回退」组把 revert/reset 三档/reflog 放在一起,危险等级一目了然。

差异注解:易混命令写明关键差异——pull 与 pull --rebase、push --force 与 --force-with-lease、stash pop 与 apply。

使用建议

新团队可以把「配置与进阶」组当初始化清单:defaultBranch、user.name/email、常用 alias。遇到「提交不见了」先搜 reflog。想系统学的话,把每组命令在测试仓库里各跑一遍,比背文档快。

常见问题

命令里的尖括号是什么意思?

<file>、<name>、<sha> 这类尖括号是占位符,替换成你的实际值(分支名、文件名、提交哈希)。命令本身可以整条复制到终端再改。

reset --soft / --mixed / --hard 到底差在哪?

三者都把 HEAD 挪回上一笔,区别是改动留在哪:--soft 留在暂存区(改完重新提交即可)、--mixed 留在工作区(默认,要重新 add)、--hard 直接丢弃(危险,找不回)。速查表的「撤销与回退」组里三条并排放着,方便对照。

提交错了想反悔,用 revert 还是 reset?

已推送到公共分支用 revert(生成一条反向提交,历史干净可推送);只有自己看得见的本地分支才考虑 reset。搜「撤销」可以直接过滤出这两条。

HTTP 状态码速查

55+ 个 HTTP 状态码分组速查,编号与关键词搜索。

chmod 权限计算

rwx 复选框与八进制/符号表示三向联动,支持特殊位。

Cron 表达式解释

把 cron 表达式翻译成人话,并给出未来 5 次执行时间。

本地 + 可选 AI

查看更多格式转换,或浏览全部工具。