重设状态
- 将当前分支的 HEAD 重设到指定的状态
语法
git reset [<mode>] [-q] [<commit>]
- mode 包括
--soft | --mixed [N] | --hard | --merge | --keep
- 设置当前分支的 HEAD 到
<commit>
- mixed 是默认模式
- mode 包括
reset
之前,git 会保存原本的HEAD
到ORIG_HEAD
git reset <commit>
之后可通过git reset ORIG_HEAD
回到原来的地方# 重设暂存区和工作区, 丢弃所有改变, 把 HEAD 指向 commit git reset --hard # 暂存区和工作区内容不做任何改变, 仅把 HEAD 指向 commit, 可用于删除提交历史记录, 只生成一次提交 git reset --soft # 仅重设暂存区, 不改变工作区 git reset --mixed
git reset –soft 合并提交
# 合并最近 3 次提交
git reset --soft HEAD~3
# 使用这 3 次提交的信息
git commit --edit -m"$(git log --format=%B --reverse HEAD..HEAD@{1})"
# 重新编写提交信息
git add . && git commit -m "new commit message"