恢复未提交的更改

时间:2020-01-30 03:04:49

标签: git

我更新了该分支,同时又从该分支中​​获取了最新消息。在获取最新版本后,我发现在构建分支时有几处东西坏了,而不是修复那些我立即运行的东西

git reset --hard, 那时我什至没有意识到我已经对几个文件进行了更改。 有办法恢复我的更改吗?

4 个答案:

答案 0 :(得分:1)

git如何恢复您尚未提交的内容?

如果您已经已经提交这些更改,并且然后做了类似git reset --hard的操作,那是另一回事了-您可以恢复那些提交从reflog。但是据我所知,git无法恢复从未提交的内容。

答案 1 :(得分:1)

如果您尚未提交,暂存或隐藏所做的更改,则无法恢复这些更改。

恢复丢失的更改。有两个这样的问题:

如果您曾经提交过一些更改并且丢失了该提交(例如以分离状态提交),则可以使用reflog找到该提交。请参见此SO question*

如果您丢失了上一个阶段的更改,则也可以恢复。参见此SO question*。 (我自己从未使用过或尝试过)。

如果保存了更改,则还可以使用pop或apply恢复该更改。 (我不确定弹出/删除的隐藏文件是否也可以恢复,但未提交)。您可能会发现此恢复在git中存放的存储很有用。

答案 2 :(得分:0)

为避免这种情况,建议您不要使用reset --hard来代替git stash。在这里您可以找到the documentation。此命令使您可以保持工作目录的清洁,但将更改保存在单独的位置。您可以拥有更多的藏匿处。您可以命名藏匿处。此答案现在对您没有帮助。希望这个答案对您将来有帮助。

答案 3 :(得分:0)

恐怕要说,如果在提交或隐藏代码之前运行git reset --hard,则无法恢复代码。但是,如果您使用像IntelliJ IDEA,Pycharm或Goland这样的现代IDE,则可以检查本地历史记录,并可能会获取一些代码。