从意外切换到另一个分支中恢复未提交的Git更改

时间:2018-12-04 16:06:41

标签: git pycharm

我有一个项目,我在分支A中进行了很多更改。我从未提交过这些更改,因为我遵循了仅在工作状态下提交代码的建议做法。

今天,我犯了一个愚蠢的错误:切换到另一个分支,忘记存储或提交我的更改。

该代码已在PyCharm中打开,并且我没有单击PyCharm窗口来使​​其聚焦,因为我知道它会侦听更改并清除屏幕上的所有内容。我还没有切换回A分支,以免造成更多损失。

我只是消灭了一大堆工作吗?我可以通过Git或PyCharm的当前状态恢复其中的任何一个吗?

2 个答案:

答案 0 :(得分:1)

当您切换到另一个分支时,所做的更改将继续。您只需要切换回分支并提交或隐藏即可。

如果您当前的更改将与另一个分支发生冲突,则git将拒绝切换该分支。

您可以使用git status查看当前更改。

Somme命令可以删除您的作品,例如git cleangit resetgit checkout --force mybranchgit checkout .请注意点,此命令将丢弃工作树中的所有更改(文件(由git跟踪),通过添加git add来跟踪文件。)

总结:

执行git checkout MyBranch不会覆盖或删除您的更改

答案 1 :(得分:1)

要根据OP的要求详细说明@Nitixx的答案,请引用手册:

  

git checkout <branch>

     

要准备在<branch>上工作,请通过更新工作树中的索引和文件,并将HEAD指向分支来切换到该位置。 保留对工作树中文件的本地修改,以便可以将其提交给<branch>

(重点是我的)。

所以,是的,除非,您还以某种方式明确地弄乱了受影响文件的内容,仅检查原始分支将使您的本地修改结束。