我的Git-Fu需要帮助。 rm -r undo

时间:2014-10-18 22:04:11

标签: git

切换目录,虽然在另一个分支上有一堆其他更改,rm -r整个app /目录,现在我搞砸了。

https://github.com/GeerSwitch/penbuilders/commit/20c5111364f0c8369669d2347d35f4b83371e6fb

在那里看到那个分支?看到2k +删除?我傻了。

我已经尝试重置头部,重置为之前的提交哈希值,但这些文件仍然没有回来。

有人能救我吗? ls-files --deleted什么都没显示,我可以在上面的链接中看到它们,如果必须的话,我会复制+粘贴。

2 个答案:

答案 0 :(得分:1)

文件仍然存在,除了擦除整个GitHub存储库之外,您始终可以将它们取回。您可以尝试git revert

git revert 20c51

这将创建一个新的提交,以反转commit 20c51中的所有更改。这是最安全的方法,因为它不会重写任何现有历史记录。如果您与任何协作者合作,它也是首选方法。

另一方面,如果你想"玩火"您可以执行git rebase --interactive 20c51~1然后edit违规提交。如果不仔细使用,这将改变历史记录并导致您丢失现有工作。

答案 1 :(得分:0)

您可以使用git reset --hard a1b043b恢复上一次提交。

注意:必须非常小心地使用git reset --hard:它将完全擦除您的本地更改并将更改当前分支的位置。此外,如果您与其他开发人员合作,如果其他人的工作基于您正在重置的分支,则会导致问题。