撤销本地暂存
git reset HEAD .本地撤销提交
这个是将原来的提交撤回,适用本地
git reset [位置]
# 最常用
git reset HEAD^
git reset HEAD~2
# 来自 vs-git
git reset --soft HEAD~
# 区别
## 保留原始代码
git reset --soft
## 不保留原始代码
git reset --hard--soft会将 HEAD 移动到指定的提交,但不会更改工作目录或暂存区的内容。这意味着被重置的提交将会被移除,但所有的更改仍然会保留在暂存区(index)中。你可以在此基础上进行新的提交。
FAQ
如何将 branch 回退到之前的记录?

git branch -f main HEAD~3HEAD~: 的是当前 HEAD 的前 n 个提交。最常用的是HEAD~1(等同于HEAD~),表示当前提交的父提交。HEAD~2: 表示当前提交的祖父提交(即父提交的父提交)HEAD~和HEAD^的主要区别- 多父提交的处理:
HEAD~只考虑线性历史,即无论提交是否是合并提交,HEAD~n始终表示当前提交的第 n 个祖先提交。HEAD^在处理合并提交时特别有用,因为合并提交有多个父提交。HEAD^和HEAD^1是第一个父,HEAD^2是第二个父。
- 可读性:
HEAD~更适合用于简单的线性历史,通常用于表示相对位置的语法。HEAD^更适合用于需要区分父提交(特别是在合并提交时)的情况。
- 多父提交的处理:
远程还原提交
新建一个提交,和之前的提交反向操作
git revert [位置]
git revert HEADcherry pick
git cherry-pick C2 C4
移除暂存区的文件
来自 vs-git: 移除暂存区的文件
git rm --cached -r -- .