撤消git add,commit和push WITHOUT丢失未跟踪的文件

时间:2015-02-19 22:08:14

标签: git git-rebase undo git-reset git-revert

我意外地添加,提交并将所有未跟踪的文件推送到远程仓库,在那里他们会让我的合作者感到讨厌。

从那以后,我又做了两次提交,其中一次是通过git pull与远程合并。

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

使用我尝试的所有命令(checkout,revert,reset,rebase),我的未跟踪文件因撤消提交而丢失。

我该怎么办?

1 个答案:

答案 0 :(得分:4)

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

这将还原您的更改并将其推送到您的主人,以便其他人不再需要查看您的文件。然后,第5步将恢复您在原始提交中所做的所有文件和更改,并将其添加到恢复的顶部。