git-reset

摘要

git reset [-q] [<tree-ish>] [--] <pathspec>…
git reset [-q] [--pathspec-from-file=<file> [--pathspec-file-nul]] [<tree-ish>]
git reset (--patch | -p) [<tree-ish>] [--] [<pathspec>…]
git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]
DEPRECATED: git reset [-q] [--stdin [-z]] [<tree-ish>]

使用

git reset [<mode>] [<commit>]

重置到某提交,<mode>可以是--soft ,--mixed,--hard,--merge,--keep<commit>默认HEAD,可以是任意commit的哈希值。

命令功能

# 默认,reset index(重置整个暂存区)
# 等价于git reset --mixed HEAD
git reset

# undo commit(重置仓库区到前一个提交)
# soft(轻度的)
git reset --soft HEAD~1

# undo commit(重置仓库区到前一个提交),reset index(重置整个暂存区)
# mixed(适度的)
git reset --mixed HEAD~1

# undo commit(重置仓库区到前一个提交),reset index(重置整个暂存区),reset workspace(重置整个工作区)
# hard(重度的)
# 不使用或谨慎使用!
git reset --hard HEAD~1

命令测试

# 仓库区
commit3: 添加 c.txt
commit2: 添加 b.txt
commit1: 添加 a.txt

# 暂存区
c.txt: 第一行修改
b.txt: 第一行修改

# 工作区
c.txt: 第二行修改
a.txt: 第一行修改

git reset --soft HEAD~1

# 仓库区
commit2: 添加 b.txt
commit1: 添加 a.txt

# 暂存区
c.txt: 第一行修改
b.txt: 第一行修改

# 工作区
c.txt: 第二行修改
a.txt: 第一行修改

git reset --mixed HEAD~1

# 仓库区
commit2: 添加 b.txt
commit1: 添加 a.txt

# 暂存区

# 工作区
c.txt: 第一行、第二行修改
b.txt: 第一行修改
a.txt: 第一行修改

git reset --hard HEAD~1

# 仓库区
commit2: 添加 b.txt
commit1: 添加 a.txt

# 暂存区

# 工作区



  • 创建时间: ‎2021‎.12‎.21.2‎_22.02.29
  • 更新时间: 2021.12.22.3_01.54.02
  • 版权作者: 贝可考拉
  • 标签分类: #编程开发 #git
  • 索引编号: 344
posted @ 2021-12-22 01:58  贝可考拉  阅读(104)  评论(0编辑  收藏  举报