📜  git reset soft head - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:15:18.410000             🧑  作者: Mango

Git Reset Soft Head

介绍

在Git中,有时候我们需要撤销上一次的提交并保留修改,或者我们想把本地的工作区状态恢复到某个旧版本,这时就需要用到git reset命令。

git reset可以修改HEAD指针或分支指针,来达到撤销或回滚的目的,同时有三种模式:soft、mixed、hard,而我们这里介绍的是soft模式。

soft模式

soft模式是最安全的一种回滚方式,它只是把HEAD指针移动到指定的提交上,不会改变当前工作区和暂存区的内容。这样我们就可以重新提交代码,而不会丢失已有的修改。

具体使用方法如下:

git reset --soft [commit-hash]

其中commit-hash是需要回滚到的提交的哈希值。

示例

假设我们现在的工作区和暂存区内容如下:

$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    modified:   README.md
    modified:   index.html

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
  (commit or discard the untracked or modified content in submodules)

    modified:   app.js

现在我们想撤销上一次的提交,而不丢失已有的修改,可以使用如下命令:

git reset --soft HEAD^

这样我们就完成了回滚操作,同时保留了已有的修改。

总结

soft模式是一种最安全的回滚方式,它只是移动了HEAD指针,不会改变工作区和暂存区内容。通过git reset --soft [commit-hash]命令,我们可以回滚到指定的历史提交。