Skip to content

Latest commit

 

History

History
32 lines (26 loc) · 991 Bytes

git_reset.md

File metadata and controls

32 lines (26 loc) · 991 Bytes

重设状态

  • 将当前分支的 HEAD 重设到指定的状态

语法

  • git reset [<mode>] [-q] [<commit>]
    • mode 包括--soft | --mixed [N] | --hard | --merge | --keep
    • 设置当前分支的 HEAD 到 <commit>
    • mixed 是默认模式
  • reset 之前,git 会保存原本的 HEADORIG_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"