git切换分支时,使用git diff -w,导致数据丢失,使用git stash恢复文件

事件发生情景:

在分支A上开发代码,一直没有commit,以致于想切回master分支时有个配置文件冲突,发生错误。

此时网上搜索了下错误代码,解决方案如下,

想查看文件哪里不一样,所以使用了代码 git diff -w webapp.iml

然后切换分支成功了(此时并不知原理为何)

之后继续切回分支A,发现代码回到了之前的状态,新的代码不见了,

吓得一身冷汗(劳资不想加班啊,何况是无意义的)

就开始找代码的过程。

有git fsck --unreachable

找回的文件不全,而且不是最新的。

继续,最后发现git stash的好处

=============================================================

git stash

保存当前工作进度,会把暂存区和工作区的改动保存起来。执行完这个命令后,在运行git status命令,就会发现当前是一个干净的工作区,没有任何改动。使用git stash save 'message...'可以添加一些注释

git stash pop

恢复最新的进度到工作区。git默认会把工作区和暂存区的改动都恢复到工作区。

================================================================

看完这个,我才明白为什么新开发未上传的代码会消失。

希望亲们引以为戒。

不过git stash 也很好用,要合理利用哦。

工作场景适用于: 
我们有时会遇到这样的情况,正在dev分支开发新功能,做到一半时有人过来反馈一个bug,让马上解决,但是新功能做到了一半你又不想提交,这时就可以使用git stash命令先把当前进度保存起来,然后切换到另一个分支去修改bug,修改完提交后,再切回dev分支,使用git stash pop来恢复之前的进度继续开发新功能。

 

创建.gitignore

vim .gitignore

写入: 

node_modules

npm-debug.log

package-lock.json

:wq

此时就创建好了需要忽略的配置 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值