摘要
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
# 暂存区
# 工作区
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。