使用 ct 表示commit时产生的对象,fp表示文件路径
两种用法
-
git reset ct fp
此用法包含文件路径,用指定的ct下的fp替换暂存区中的文件,不会重置ct和改变工作区的文件
例:有多个已提交的文件,ct1=哈希1,更改内容并提交后ct2=哈希2,此时再更改内容并使用了add添加到暂存区,如果此时不想提交了,并需要将已提交文件中的1.txt恢复到ct1。
则可以使用命令
git reset ct1 1.txt
后进行commit -
git reset --参数 ct
此方法不包含文件路径,根据不同的子操作可以对暂存区或工作区进行重置。
- 不使用参数(默认为 —mixed):如
git reset ct
,会使当前的提交引用引用指向ct并改变暂存区内容为ct的内容。 - 使用参数hard:如
git reset --hard ct
,会使当前的提交引用引用指向ct,暂存区与工作区的内容也会变更为ct的内容。 - 使用参数soft:如
git reset --soft ct
,只将当前的提交引用引用指向ct。 - 命令
git reset
与git reset HEAD
:仅用HEAD指向的目录树(与master相同)重置暂存区,相当于撤销之前的git add
操作。 - 命令
git reset -- 文件名
与git reset HEAD 文件名
:仅将某个文件的改动撤出暂存区。 - 命令
git reset HEAD^
与git reset --mixed HEAD^
:暂存区与ct回退一次 - 命令
git reset --hard HEAD^
:工作区、暂存取,ct全部回退一次
- 不使用参数(默认为 —mixed):如