我有一个项目,我在分支A中进行了很多更改。我从未提交过这些更改,因为我遵循了仅在工作状态下提交代码的建议做法。
今天,我犯了一个愚蠢的错误:切换到另一个分支,忘记存储或提交我的更改。
该代码已在PyCharm中打开,并且我没有单击PyCharm窗口来使其聚焦,因为我知道它会侦听更改并清除屏幕上的所有内容。我还没有切换回A分支,以免造成更多损失。
我只是消灭了一大堆工作吗?我可以通过Git或PyCharm的当前状态恢复其中的任何一个吗?
答案 0 :(得分:1)
当您切换到另一个分支时,所做的更改将继续。您只需要切换回分支并提交或隐藏即可。
如果您当前的更改将与另一个分支发生冲突,则git将拒绝切换该分支。
您可以使用git status
查看当前更改。
Somme命令可以删除您的作品,例如git clean
,git reset
,git checkout --force mybranch
,git checkout .
请注意点,此命令将丢弃工作树中的所有更改(文件(由git跟踪),通过添加git add
来跟踪文件。)
总结:
执行git checkout MyBranch
不会覆盖或删除您的更改
答案 1 :(得分:1)
要根据OP的要求详细说明@Nitixx的答案,请引用手册:
git checkout <branch>
要准备在
<branch>
上工作,请通过更新工作树中的索引和文件,并将HEAD
指向分支来切换到该位置。 保留对工作树中文件的本地修改,以便可以将其提交给<branch>
。
(重点是我的)。
所以,是的,除非,您还以某种方式明确地弄乱了受影响文件的内容,仅检查原始分支将使您的本地修改结束。