问题分析
使用git reflog查看执行命令,以下是发生事故的切换和提交动作
46f72622e1 HEAD@{41}: commit: feat: 【Sales - 6.3】小程序端不登录也可以录入客户线索
c5e7d9f6e1 HEAD@{42}: fetch origin feature/20240102_Sales6.3_xingang:feature/20240102_Sales6.3_xingang --recurse-submodules=no --progress --prune: fast-forward
2b8fa87fb5 HEAD@{43}: checkout: moving from develop to feature/20240102_Sales6.3_xingang
12c545fd29 HEAD@{44}: merge feature/20240102_Sales6.3_xingang: Merge made by the 'recursive' strategy.
9ff4b93056 HEAD@{45}: checkout: moving from feature/20240102_Sales6.3_xingang to develop
3648003300 HEAD@{46}: commit: feat: 【Sales - 6.3】调整积分发放事务处理
fa49330927 HEAD@{47}: checkout: moving from develop to feature/20240102_Sales6.3_xingang
由于在feature分支和develop分支之前不停切换,导致服务器端git仓库的代码被删除了。作为一个Java老鸟,遇到这种情况还是很尴尬的。如下图红框部分的代码是将别人提交的代码直接改回去了,导致代码丢失!!!!
以上都是因为不规范操作导致代码切换出现的代码丢失,如何避免呢?暂时只有一种stash和unstash的暂存和还原的方法来解决。Idea并没有不让你未提交代码就必须不能切换本地分支,不断切换分支就有可能导致代码不一致的情况。
在上面很清晰看到一个别人的merge操作。此后我们再去提交的时候就是将自己本地的代码覆盖上同一个分支。此时再commit & push ,那么灾难就降临了。
解决方法
sourcetree
sourcetree可以很明确地知道分支代码能不能够切换,凡是代码有冲突 有修改的都要处理完成了才能切换分支。
Idea stash unstash 暂存和还原
Idea 项目选中,右键git就有 stash changes 和unstash changes.文章来源:https://www.toymoban.com/news/detail-813379.html
cherry-up 遴选代码
在什么分支修改,就提交到什么分支,然后再将这个提交选入到功能分支。文章来源地址https://www.toymoban.com/news/detail-813379.html
到了这里,关于Idea 开发环境不断切换git代码分支导致冲掉别人代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!