是否可以撤消由以下命令引起的更改?如果是,怎么办?

git reset --hard HEAD~1

当前回答

gitreset-hard-您可以使用它还原一个页面,然后可以再次隐藏或从原始页面中提取所有内容

其他回答

git-relog并返回到最后一个HEAD6a56624(HEAD->master)HEAD@{0}:重置:移动到HEAD~31a9bf73 HEAD@{1}:提交:在模型中添加更改生成二进制

您要做的是指定要还原到的提交的sha1

git reset --hard <sha1 of desired commit>

但不要等太久。。。几周后,git将最终看到提交未被引用,并删除所有blob。

我刚在错误的项目上做了一个硬重置。拯救我生命的是Eclipse的本地历史。据说IntelliJ Idea也有一个,你的编辑也是如此,值得检查:

关于本地历史的Eclipse帮助主题http://wiki.eclipse.org/FAQ_Where_is_the_workspace_local_history_stored%3F

如果你真的很幸运,就像我一样,你可以回到你的文本编辑器,点击“撤销”。

我知道这确实不是一个正确的答案,但它节省了我半天的工作,所以希望它能为其他人做同样的事情!

制作了一个很小的脚本,以便稍微容易地找到要查找的提交:

git fsck--lost found | grep commit | cut-d“”-f 3 | xargs-i git show \{\}| egrp“^commit |日期:”

是的,它可以用锥子或类似的东西做得更漂亮,但它很简单,我只是需要它。可能会为其他人节省30秒。