GIT:撤消上次提交以开发



所以一个特定的分支被推动开发,但现在我想恢复它并撤消所有最后的提交更改。

抱歉,我知道这已经在许多帖子中涵盖过,但我不知何故卡在了一步。

我读到的是我可以运行以下命令

git reset HEAD~1
and also tried this git reset --soft HEAD~1

当我运行以下命令时,我可以在我的视觉工作室中看到由于上述步骤而有很多未提交的更改,我实际上想放弃这些更改,因为我想还原这些更改。

现在我该怎么办,如果我撤消更改并尝试提交,我看不到任何提交选项。

是否有任何选项可以撤消这些更改并直接执行提交。我可能在这里错过了一些关键步骤,但有点卡在这里。

如果有人可以分享这一步,请。

>--mixed是 git 重置的默认选项。

使用--soft选项,索引中存在更改并分阶段进行。使用--medium选项,将修改索引并取消暂存更改(更改仍将存在于工作目录中(。使用--hard选项,索引将被修改,更改也会从工作目录中删除。

git reset HEAD~1使用默认的--mixed选项,并将更改标记为未暂存且存在于工作目录中。

您可以运行git reset --hard来清理工作目录。请注意,运行此命令后,您将永久丢失工作目录中的更改。

您可以参考此链接了解更多详情。

注意:请使用git revert <commit>来还原提交。

执行git reset HEAD~1后,文件中的更改将好像它们没有提交(它们是,但您正在恢复索引,因此看起来好像它们没有提交(。

这意味着您处于历史记录中的某个点,如果您签出文件,它们将处于预提交阶段,这意味着如果您不想保留任何这些更改,您可以使用

git checkout .

或者,您可以使用git revert hash_of_commit,这将创建一个新的提交,其中包含您所做的更改的"反向",将文件恢复到其状态。

最新更新