git用法速查手册
为了免得去网上搜罗教程, 在此总结一份简明的 git 命令速查手册
基础
基础件不解释
git initgit addgit commit
查看
- 查看修改了多少行:
git diff --stat - 查看修改的文件:
git status
追踪
- 取消add一个文件:
git reset HEAD filename - 取消追踪已commit的文件:
git rm --cached filename
变基
- 回溯恢复文件:
- 回到某个commit:
git checkout HEAD~1 - 复制出文件
- 回到刚才的分支:
git checkout -
- 回到某个commit:
- 分支重新开发:
git checkout -b new-branch B# 基于B创建新分支git add . && git commit -m "基于 B 的修改"# 在新分支修改git checkout original-branch# 切回原分支git merge new-branch# 合并新分支
- pick 某个commit的改动到main:
git checkout main && git cherrypick abcd - 回到某个commit: 等同于撤销, 见下.
撤销
- 撤销某个未push的 commit (不留痕迹):
git reset --hard HEAD~1, 即从 HEAD 到 HEAD~1- 如果已提交, 还需要
git push --force origin branchname
- 如果已提交, 还需要
- 撤销某个 commit 的更改(即回到某个commit之前):
git revert HEAD会新增一个提交等于HEAD~1 - 撤销本次还未commit的修改:
- 撤销已跟踪的
git restore filename, 等价于 `git checkout – filename `` - 撤销并删除未跟踪的
git clean -df - 撤销已暂存(add)的
git reset --hard HEAD
- 撤销已跟踪的
修改commit
- 修改 commit 信息, 未推送:
git commit --amendgit rebase -i HEAD~3(交互式修改最近3个)
其他
git checkout 和 git switch
| 功能 | git switch (2.23) |
git restore (2.23) |
git checkout |
|---|---|---|---|
| 切换分支 | ✅ git switch <branch> |
❌ | ✅ git checkout <branch> |
| 创建并切换分支 | ✅ git switch -c <branch> |
❌ | ✅ git checkout -b <branch> |
| 检出历史 commit | ❌ | ❌ | ✅ git checkout <commit> |
| 恢复工作区文件 | ❌ | ✅ git restore <file> |
✅ git checkout -- <file> |
| 恢复暂存区文件 | ❌ | ✅ git restore --staged <file> |
❌ (需用 git reset) |
| 设计目标 | 专注分支切换 | 专注文件恢复 | 多功能(历史遗留) |
todo
sub_modules
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Juice's Blog!





