| 我想… / 出问题了 | 用这条 |
| 提交信息写错了(还没推送) | git commit --amend |
| 提交漏了文件 | git add . → git commit --amend --no-edit |
| 想重做最近一次提交 | git reset --soft HEAD~1 |
| 撤销一个已推送的普通提交 | git revert <提交> |
| 撤销一个已推送的 merge | git revert -m 1 <merge提交> |
| 分支被误删了 | git reflog 找到散列 → git branch <名字> <散列> |
| stash 记录被误删 | git fsck --unreachable → git show <散列> 确认后恢复 |
| 分支名起错了 | git branch -m <新名字> |
| 一堆零碎提交想合并成一个 | git rebase -i --autosquash <基准> |
| 只要别的分支某一个提交 | git cherry-pick <提交> |
| 查某行代码是谁写的 | git blame -L 10,20 <文件> |
| 查某段代码何时引入 / 删除 | git log -S "代码片段" |
| 克隆太慢 / 仓库太大 | git clone --depth 1 <url> |
| 不切分支想临时试另一个分支 | git worktree add ../test <分支> |
| 看两个分支各改了哪些文件 | git diff --name-status A..B |
| 搞不清本地与远程差在哪 | git remote show origin |
| 文件想忽略但已被跟踪 | git rm --cached <文件> |
| 有急事,当前改动先放一放 | git stash push -m "说明" |