跳到主要内容

Git 高级命令速查表

本速查表面向已经掌握 Git 基础操作的开发者,深入讲解 Rebase 交互模式、二分查找、引用日志、精选提交、子模块管理和工作树等高级主题。掌握这些命令能显著提升日常开发效率。

更新: 2026-07-17·37 条命令

概述

本速查表涵盖 Git 基础操作之外的高级功能。掌握这些命令可以应对复杂的版本控制场景。

快速开始

``bash git rebase -i HEAD~3 # 交互式变基最近 3 个提交 git reflog # 查看引用日志 git bisect start # 开始二分查找 ``

详细用法请参阅下方命令表格。

Rebase(13)

命令难度
git rebase -i [base]
以交互模式变基,允许对提交进行编辑、合并、删除、重排等操作
中级
git rebase --onto newbase oldbase [branch]
将 branch 上从 oldbase 之后的提交变基到 newbase 上,用于精确控制提交移植
高级
git rebase --abort
中止当前有冲突的变基操作,恢复到变基前的状态
中级
git rebase --continue
解决冲突后继续执行变基操作
中级
git rebase --skip
跳过当前导致冲突的提交,继续变基
中级
git stash -u [message]
暂存工作区的修改,包括未跟踪的文件(--include-untracked)
中级
git stash --keep-index [message]
暂存工作区的修改,但保留已暂存的更改(保持索引不变)
中级
git stash branch branchname [stash]
从指定的 stash 创建新分支并应用 stash,适用于因冲突无法正常 pop 的场景
高级
git clean -fd
强制删除工作目录中所有未跟踪的文件和目录
中级
git grep [pattern] [revision]
在 Git 仓库中搜索匹配指定模式的行,支持在指定版本中搜索
中级
git shortlog [options]
按作者汇总提交信息,常用于生成变更日志
中级
git describe [ref]
基于最近的标签为提交生成一个可读的名称,格式为 tag-N-gHASH
中级
git rebase --abort
取消正在进行的 rebase 操作,回到 rebase 前的状态
基础

Bisect(5)

命令难度
git bisect start [bad [good...]]
启动二分查找会话,标记已知的好和坏的提交范围
高级
git bisect bad [rev]
将当前或指定提交标记为坏的(包含 bug)
高级
git bisect good [rev]
将当前或指定提交标记为好的(不包含 bug)
高级
git bisect reset
结束二分查找会话,将 HEAD 恢复到查找前的位置
高级
git bisect log
显示当前二分查找会话的日志,可用于重放或调试查找过程
高级

Reflog(3)

命令难度
git reflog show [ref]
显示指定引用的操作历史记录(默认为 HEAD),可恢复丢失的提交
中级
git reflog delete [entry]
从 reflog 中删除指定的条目
高级
git reflog expire [options]
使过期的 reflog 条目过期并清理,通常由 git gc 自动执行
高级

Cherry-pick(5)

命令难度
git cherry-pick [commit]
将指定提交的变更应用到当前分支,生成新的提交
中级
git cherry-pick -n [commit]
应用指定提交的变更到工作区和暂存区,但不自动创建提交
中级
git cherry-pick -x [commit]
应用指定提交并自动在提交信息中添加来源引用(cherry picked from ...)
中级
git cherry-pick --signoff [commit]
应用指定提交并在提交信息中添加 Signed-off-by 签名行
中级
git cherry-pick <commit>
将指定提交的更改应用到当前分支
基础

子模块(6)

命令难度
git submodule add [repository] [path]
添加一个新的子模块到仓库中
中级
git submodule update [--init] [--recursive]
更新子模块到其注册的提交记录,--init 初始化未初始化的子模块
中级
git submodule init
基于 .gitmodules 文件初始化子模块配置
中级
git submodule foreach [command]
在每一个子模块中执行指定的命令
高级
git submodule status [--recursive]
显示子模块的当前状态,包括提交哈希和是否已初始化
中级
git submodule deinit [path]
反初始化子模块,从工作树中移除子模块文件但保留 .gitmodules 配置
高级

工作树(5)

命令难度
git worktree add [path] [branch]
在新目录中检出一个新的工作树,关联指定的分支
中级
git worktree list
列出此仓库关联的所有工作树及其路径和分支信息
中级
git worktree prune [options]
清理已删除或不可达的工作树记录
高级
git worktree remove [path]
删除指定路径的工作树同时保留仓库数据
中级
git worktree lock [path]
锁定工作树以防止其被清理(prune)或删除
中级

常见问题

本速查表数据整理自各工具官方文档。最后更新: 2026-07-17。