摘要
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