撤消 git add、commit 和 push 而不会丢失未跟踪的文件

cap*_*let 1 git undo git-rebase git-revert git-reset

我不小心添加、提交并将我所有未跟踪的文件推送到远程存储库,在那里它们会令我的合作者烦恼。

从那以后,我还进行了另外两次提交,其中一次是通过 git pull 与远程合并。

我想撤消这一系列操作并将我的目录恢复到以前的状态(包括未跟踪的文件)。

使用我尝试过的所有命令(签出、还原、重置、变基),我的未跟踪文件由于撤消提交而丢失。

我该怎么办?

小智 5

1. git log
2. copy hash of the commit that you accidentally pushed
3. git revert HEAD
4. git push
5. git cherry-pick HASHFROMSTEPTWO
Run Code Online (Sandbox Code Playgroud)

这将还原您的更改并将其推送到您的主人,以便其他人不再需要看到您的文件。然后,步骤 5 将带回您在原始提交中所做的所有文件和更改,并将其添加到还原之上。