外观
99 · 命令速查表
安全等级见 00 章。改动范围:工 = 工作区,暂 = 暂存区,本 = 本地历史,远 = 远程。
只读
| 命令 | 改哪一层 | 等级 | 一句话 | 章节 |
|---|---|---|---|---|
git status | — | 只读 | 当前状态、ahead/behind、进行中操作 | 03 |
git diff | — | 只读 | 工作区 / 暂存区 / 分支之间的差异 | 04 |
git log | — | 只读 | 浏览提交图 | 04 |
git show | — | 只读 | 看某次提交或某个对象 | 04 |
git blame | — | 只读 | 某行最后改自哪次提交 | 04 |
git grep | — | 只读 | 在跟踪文件里搜文本 | 04 |
git shortlog | — | 只读 | 按作者汇总说明 | 04 |
git reflog | — | 只读 | HEAD 移动日记,急救第一工具 | 12 |
git fsck | — | 只读 | 检查对象、找 dangling | 11 |
git branch(列出) | — | 只读 | 看分支和跟踪关系(-vv) | 05 |
git remote -v | — | 只读 | 远程 URL | 02 |
git tag -l | — | 只读 | 列标签 | 10 |
git config --list | — | 只读 | 查配置来源 | 01 |
git stash list / show | — | 只读 | 看现场快照 | 08 |
git worktree list | — | 只读 | 附加工作目录 | 08 |
配置与仓库起步
| 命令 | 改哪一层 | 等级 | 一句话 | 章节 |
|---|---|---|---|---|
git config | 配置文件 | 可逆本地 | 身份、别名、pull 行为 | 01 |
git init | 新建 .git | 可逆本地 | 把目录变成仓库 | 02 |
git clone | 新建本地仓库 | 可逆本地 | 复制远程,自动加 origin | 02 |
git remote add/set-url | 配置 | 可逆本地 | 登记远程地址 | 02 |
日常改代码
| 命令 | 改哪一层 | 等级 | 一句话 | 章节 |
|---|---|---|---|---|
git add | 暂 | 可逆本地 | 放入暂存区 | 03 |
git commit | 本 | 改写未推送历史(仅 amend 时) | 拍摄快照;amend 会换 SHA | 03 |
git restore | 工 / 暂 | 可逆本地 | 恢复文件;可丢掉工作区 | 03 |
git rm | 工 + 暂 | 可逆本地 | 删除并暂存;--cached 只停跟踪 | 03 |
git mv | 工 + 暂 | 可逆本地 | 重命名并暂存 | 03 |
git clean -n | — | 只读 | 预览将删除的未跟踪文件 | 03 |
git clean -fd | 工 | 危险 | 删除未跟踪文件,Git 救不回 | 03 |
分支与合并
| 命令 | 改哪一层 | 等级 | 一句话 | 章节 |
|---|---|---|---|---|
git switch | HEAD + 工 | 可逆本地 | 切分支;脏工作区可能被拒绝 | 05 |
git switch -c | 本(新指针) | 可逆本地 | 创建并切换 | 05 |
git checkout | 视参数 | 视参数 | 旧全能命令:切分支或恢复文件 | 05 |
git branch -d | 本(指针) | 可逆本地 | 删已合并本地分支 | 05 |
git branch -D | 本(指针) | 危险 | 未合并也删;reflog 可救 | 05 |
git merge | 本 + 工 | 改写未推送历史 | 合入另一分支;冲突见 09 | 05 |
git merge --abort | 工 + 本 | 可逆本地 | 放弃进行中的合并 | 09 |
git bisect | HEAD(游离) | 可逆本地 | 二分找引入 bug 的提交 | 04 |
改写与撤销
| 命令 | 改哪一层 | 等级 | 一句话 | 章节 |
|---|---|---|---|---|
git reset --soft | 本 | 改写未推送历史 | 撤回 commit,改动留暂存区 | 06 |
git reset(mixed) | 本 + 暂 | 改写未推送历史 | 撤回 commit,改动留工作区 | 06 |
git reset --hard | 本 + 暂 + 工 | 危险 | 三区对齐目标;未入库内容丢 | 06 |
git revert | 本(追加) | 可逆本地 | 公共历史上正确的撤销方式 | 06 |
git cherry-pick | 本(追加) | 改写未推送历史* | 复制某次提交到当前分支 | 06 |
git rebase | 本 | 改写未推送历史 | 接到新基上,SHA 全变 | 06 |
git rebase -i | 本 | 改写未推送历史 | 整理、合并、改说明、丢提交 | 06 |
git rebase --abort | 工 + 本 | 可逆本地 | 放弃进行中的 rebase | 09 |
* cherry-pick 本身是追加新 SHA,标成「改写」是提醒:复制后若再去 reset 源分支,才涉及改写。
远程
| 命令 | 改哪一层 | 等级 | 一句话 | 章节 |
|---|---|---|---|---|
git fetch | 远程跟踪分支 | 可逆本地 | 更新望远镜,不动当前分支 | 07 |
git pull | 远跟 + 本 | 视策略 | fetch + merge/rebase | 07 |
git pull --ff-only | 远跟 + 本 | 可逆本地 | 只能快进,适合更新 main | 07 |
git push | 远 | 影响远程 | 上传本地提交 | 07 |
git push -u | 远 | 影响远程 | 推送并建立跟踪 | 07 |
git push --force-with-lease | 远 | 影响远程 | 独享分支 rebase 后更新 PR | 07 |
git push --force | 远 | 危险 | 无条件覆盖远程 | 07 |
git push --delete | 远 | 影响远程 | 删远程分支或标签 | 05 / 10 |
现场与多目录
| 命令 | 改哪一层 | 等级 | 一句话 | 章节 |
|---|---|---|---|---|
git stash push | 工 / 暂 | 可逆本地 | 收起现场 | 08 |
git stash pop/apply | 工 / 暂 | 可逆本地 | 取回;冲突时 pop 不删条目 | 08 |
git stash drop/clear | stash 引用 | 危险(clear) | 丢掉现场快照 | 08 |
git worktree add | 新目录 | 可逆本地 | 并行检出另一分支 | 08 |
标签与维护
| 命令 | 改哪一层 | 等级 | 一句话 | 章节 |
|---|---|---|---|---|
git tag -a | 本 | 可逆本地 | 附注标签,发版用 | 10 |
git gc | 对象库 | 危险(若刚误操作) | 压缩并可能剪掉 dangling | 11 |
git archive | 新文件 | 只读仓库 | 打包不含 .git 的源码 | 11 |
git submodule update --init | 工(子目录) | 可逆本地 | 拉子模块 | 11 |
git sparse-checkout | 工 | 可逆本地 | 只检出部分目录 | 11 |
急救跳转
| 症状 | 去 |
|---|---|
| 刚 hard / 提交不见 | reset --hard 之后 |
| 说明写错、漏文件 | amend |
| 游离 HEAD | detached |
| 删错分支 | 删分支 |
| 冲突想放弃 | abort |
| 打到错误分支 | 错分支 |
| 已上共享历史 | revert |
| force 覆盖别人 | force push |
| clean 删了新文件 | clean |
| stash 不见 | stash |
回到 首页