UNPKG

hudada-cli

Version:

专为程序员准备的本地文档搜索,快捷开发工具

58 lines (41 loc) 1.6 kB
# git reset `git reset`命令用于将当前分支指向另一个位置。 ```bash # 将当期分支的指针倒退三个 commit, # 并且会改变暂存区 $ git reset HEAD~3 # 倒退指针的同时,不改变暂存区 $ git reset --soft HEAD~3 # 倒退指针的同时,改变工作区 $ git reset --hard HEAD~3 ``` 如果不指定回滚的位置,那么等同于撤销修改。 ```bash # 撤销上一次向暂存区添加的所有文件 $ git reset # 无任何效果 $ git reset --soft # 同时撤销暂存区和工作区的修改, # 回复到上一次提交的状态 $ git reset --hard # 撤销上一次向暂存区添加的某个指定文件, # 不影响工作区中的该文件 $ git reset -- <filename> ``` ## 参数 - soft: 不改变工作区和缓存区,只移动 HEAD 到指定 commit。 - mixed: 只改变缓存区,不改变工作区。这是默认参数,通常用于撤销`git add`。 - hard:改变工作区和暂存区到指定 commit。该参数等同于重置,可能会引起数据损失。`git reset --hard`等同于`git reset --hard HEAD`。 - `-p`表示键入交互模式,指定暂存区的哪些部分需要撤销。 ```bash # Undo add $ git reset # Undo a commit,不重置工作区和缓存区 # 回到 HEAD 之前的那个 commit $ git reset --soft HEAD^ # Undo a commit,重置工作区和缓存区 # 连续撤销三个 commit:HEAD, HEAD^, and HEAD~2 $ git reset --hard HEAD~3 # 从暂存区移除指定文件,但不改变工作区中的该文件 $ git reset -- frotz.c ```