有没有办法从git重置中恢复未提交的更改到工作目录-hard HEAD?
当前回答
如果你幸运地有相同的文件打开在另一个编辑器(例如。Sublime Text)试试按ctrl-z键。它救了我。
其他回答
我刚刚做了git重置-困难和丢失了所有未提交的更改。幸运的是,我使用了一个编辑器(IntelliJ),我能够从本地历史记录中恢复更改。Eclipse应该允许您做同样的事情。
一般来说,您无法返回未提交的更改。
以前的分段更改(git add)应该可以从索引对象中恢复,所以如果你这样做了,使用git fsck——lost-found来定位与它相关的对象。(这将对象写到.git/lost-found/目录;从那里你可以使用git show <filename>来查看每个文件的内容。)
如果没有,答案是:看看你的备份。也许你的编辑器/IDE将临时拷贝存储在/tmp或C:\ temp之类的目录下
git reset HEAD@{1}
这将恢复到前一个HEAD
[1] vim例如,可选地存储持久撤销,eclipse IDE存储本地历史;这样的功能可能会节省你的**
是的,你可以在git中从硬重置中恢复。
Use:
git reflog
来获取提交的标识符。 然后使用:
git reset --hard <commit-id-retrieved-using-reflog>
这招救了我几次命。
你可以在这里找到reflog的文档。
当我在做一个本地项目时,我想把它移动到GitHub上,然后创建一个新的存储库。当我试图用.gitignore将所有这些文件添加到新的存储库中时,我不小心添加了一个错误的文件,然后试图清除它。
我运行了git reset -hard origin/master
然后我所有的本地文件都被删除了,因为回购是空的。我以为一切都消失了。
这招对我很管用:
git reflog show
git reset HEAD@{1}
git push
以后你可以使用VSCode和ext: GitLens - Git增压,所以你可以用这个扩展反转你的代码
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别