【IDEA】代码未提交(commit)拉取(pull) 远程代码导致代码全部丢失的bug

问题描述

今天早上拉取公司服务器代码后遇见了一个非常奇怪的问题:自己先前费了两天写的代码文件全部丢失了!!!而且马上到了任务截止时间,此刻我的心情…

在这里插入图片描述

分析问题

冷静了3秒后,凭借多年的经验我的第一反应看控制台 Event Log 有没有提示什么东东,果然我发现一丝丝线索:
在这里插入图片描述
通过上面的警告信息后,原来是由于我未 commit 的文件在更新之前自动保存在 stash,接下来顺便了解了 Git stash 的作用:将目前还不想提交的但是已经修改的内容进行保存至堆栈中,后续可以在某个分支上恢复出堆栈中的内容(相当于将代码进行隐藏),看到这里读者们是不是和我一样突然就悟出了一个真理!!! 那就是没有提交的内容都会保存至堆栈中
在这里插入图片描述

解决问题

此刻我们想将隐藏的代码进行恢复,那么我们将会使用到 Git unstash命令,还好【IDEA】编辑器已经为我们提供了这个选项。VCS–>git–>Unstash


选中你刚刚的stash 先查看其内容,可以看到我们之前丢失的代码文件列表如下所示:


接下来选中Pop stash,点击pop stash即可

本以为一切顺利,万事大吉。但万万没想到又出了一个问题。不过此刻的我稳如老狗:

在这里插入图片描述
根据右下角屏幕的错误信息提示:本地更改会被merge所覆盖


so 这里点击view them 然后就看到了下面两个文件信息:

.idea目录下所有文件,我已经在.gitignore中声明忽略了,所以我的localChanges中并没有该文件。排查一番后查看git提交的历史,发现是其他同事将这个目录下的文件加入了版本控制并提交到git仓库中 🤣🤣🤣 。

在这里插入图片描述
我还能说什么呢?不过虽然是别人挖的坑,那就辛苦咱自己解决了
在这里插入图片描述
由于我在idea已经设置忽略的文档,所以先将这个idea 文件目录先放出来,
Macos 系统中 Preferences–>Editor–>File Types 删除 *.idea 如下所示:
在这里插入图片描述
将下面这两个文件进行 revert 保持一致在进行 Git unstash 操作如下所示:

然后我们在按照上面 Git unstash 操作后,发现之前丢失的代码都回来了此刻已经感动的泪目。
在这里插入图片描述

到了这一步,还需要做的就是立刻、马上 commit 自己的代码然后提交到git 仓库上。


总结

此刻给自己敲响了一个警钟:以后在拉取服务器的代码前先保证自己的代码已经commit后,在从服务器上pull 代码。

  • 18
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值