我正在使用Eclipse。而且,今天,我决定推出我在两周内写的所有代码。但是,我在提交的消息中犯了一个错误,所有的更改,所以我点击了Eclipse的Git透视图的“Revert”。但是,在这两周内我写的所有代码都不再是工作树了!
所以,我做了git log
并得到了这个:
commit dd2401c076f4e34f2bdfb642f0ef4ab1dc476458
Date: Sun Jul 16 15:03:40 2017 +0100
Revert "Rewrited the Linear Plan Tree. Renamed the planner/node package to"
This reverts commit 9240fd696fbe827e58a8eb827014125b7b1b5bb1.
commit 9240fd696fbe827e58a8eb827014125b7b1b5bb1
Date: Sun Jul 16 15:02:20 2017 +0100
Rewrited the Linear Plan Tree. Renamed the planner/node package to
所以,我执行了这个命令:git reset --soft HEAD~1
。
但是,在我的文件浏览器中,我写的所有文件仍然被删除,现在,git log
向我显示:
commit 9240fd696fbe827e58a8eb827014125b7b1b5bb1
Author: Lucas Willems <lwillems@clipper.ens.fr>
Date: Sun Jul 16 15:02:20 2017 +0100
Rewrited the Linear Plan Tree. Renamed the planner/node package to
我的代码是否会永久删除?有没有办法让它回来?非常感谢你的帮助!
答案 0 :(得分:0)
我建议您从Git bash中执行以下步骤:
git stash
git checkout yourBranch
git revert dd2401c0
git stash apply
此处的基本策略是存储当前的工作目录,然后还原还原提交。是的,两个恢复相互抵消。
此处执行git reset
的问题是它会移动分支的HEAD。这似乎会产生副作用,即您编写的任何新文件都会被删除。在任何情况下,执行重置都会重写分支的历史记录,如果分支可以由其他人共享,这是不理想的。
答案 1 :(得分:0)
我认为你应该运行git reset --hard HEAD~1
intead“soft”。 “软”意味着工作vopy和索引不会更新,因此在文件系统ig仍然看起来像还原。你现在要跑git reset --hard
。运行git status
和git diff HEAD
以检查是否存在您可能要保留的某些未提交的更改