Mat*_*der 3 git commit undo rollback
本质上我想回滚本地存储库中的两个提交。尚未将任何内容推送到远程。
因此,在我的 GIT 存储库中,我不小心在提交 (A) 中添加了一个巨大的 zip 文件。我意识到了这一点,使用 finder 删除了 zip 文件并进行了另一次提交 (B)。
但现在我意识到,如果我将其推送到远程,它将包括整个 zip 文件......
为了让事情变得更复杂,我还在第一次提交 (A) 中对几个文件进行了一系列重要的更改,我不想丢失这些更改。
在推送到远程之前,如何从历史记录中删除该 zip 文件?我是否可以恢复到这两次提交之前的文件状态,而不会丢失在其他几个文件中所做的所有更改?
修复它的最简单方法是使用命令git reset <commit>。
在您的情况下,由于您想回滚两次提交,您可以执行以下操作:
git reset HEAD~2
从git help reset:
git重置
[<mode>] [<commit>]--mixed 重置索引但不重置工作树(即保留更改的文件但不标记为提交)并报告尚未更新的内容。这是默认操作。
之后,您的存储库中的文件将根本不会更改,但两个最新的提交将不再存在。
然后,您可以像平常一样选择要提交的文件。