idea实战技巧

本文介绍了在IDEA中使用Git进行版本控制的工作流程,包括如何利用图形化工具处理分支冲突、合并操作,以及如何进行代码暂存、提交记录合并和分支同步。重点讲解了变基(rebase)与合并(merge)的区别,并提供了不同场景下的应用实例。此外,还提到了Git stash的使用场景和解决冲突的策略,强调了良好的分支管理实践。
摘要由CSDN通过智能技术生成

文本持续更新一些工作中实用的idea技巧

关于用命令行还是工具

虽然使用命令操作很高大上,但是为了方便和高效,还是推荐使用图形化工具,作为java开发,个人强烈推荐使用idea自带的git工具。
git操作那么多,你都会用已经很牛逼了,在你理解这些操作流程之后在一些特殊场景不得不使用命令行时,查一查文档慢慢操作就可以了。idea的git工具会记录这些命令
在这里插入图片描述

先简单过一下idea的git工具界面

(这一章节么得啥子的意思,秀一下最新版的IDEA)

  1. 配置(略)
  2. 远程拉取项目
    在这里插入图片描述
  3. git面板
    在这里插入图片描述
  4. 分支管理(右下角)
    在这里插入图片描述
  5. 快捷操作
    在这里插入图片描述
  6. 所有操作选项
    在这里插入图片描述
    在这里插入图片描述

1. 冲突的解决

场景1 单分支冲突

早上上班张三和你都在dev1 的最新代码开始开发,张三下班push完溜了,你push时发现和张三代码冲突了,弹出和远程代码冲突的对话框(PS:关于merge和rebase个人比较喜欢用reBase(变基))
在这里插入图片描述
冲突必然意味着决定代码去留和整合后编译是否通过,逻辑是否正确等问题,对于别人写的代码有问题应该讨论沟通,避免给别人的代码引入bug
在这里插入图片描述
点击merge,IDEA解决冲突的这个界面还是很赞的!!!
在这里插入图片描述
解决完冲突记得再次push一次
用rebase和merge分别处理完冲突的区别
rebase:当分支很多时,由于变基的操作,不会有很多分支线交错,提交记录很清晰
在这里插入图片描述

场景2 两个分支合并时冲突(这种场景很少)

张三和我分别在dev1和dev2分支开发不同的功能,完成后老板想让张三的功能加到我的分支上来
冲突处理和上面讲的一样,这里主要看dev1分支的代码怎么同步到dev2
**注意:**这个场景很少,因为dev1和dev2的差别可能不只是暂时开发完成的两个功能不同,还会有很多历史功能都不相同,这个操作会把dev1的所有代码同步过来,风险很大,只同步某1次的提交在后面的cherry-pick中说明

使用rebase

分支切换到dev2,编辑框空白处右击,然后按图操作
在这里插入图片描述
结果:rebase变基,分支线只有一条
在这里插入图片描述

使用merge

在这里插入图片描述
结果:分支线交会
在这里插入图片描述

场景3 开发分支与主分支冲突(常见情况)

张三使用dev1开发完成后要将代码合并到master主分支上(流程:commit => push => pull request => merge tomaster,一般开发是没有master分支的push权限的) 然后远程仓库从dev1合并到master时发生冲突()。
此时需要在本地将master远程仓库的代码merge/rebase到dev1,然后dev1 重新push ,一般pull repuest
会自动更新,流程大致同场景2。

场景4 cherry-pick 将一个分支的1次提交同步到另一个分支

例如:将的dev1中的两次提交同步到dev2
线切换分支到dev2
在这里插入图片描述
双击dev1 分支名,使面板显示dev1的提交记录
在这里插入图片描述
可能会有冲突要解决,解决会新建一条提交记录
在这里插入图片描述

双击dev2,切换列表,查看结果:(新提交一次记录)
在这里插入图片描述

场景5 git unstash 暂存代码恢复时产生冲突

冲突的解决同上文
这里说明stash的用法

应用场景

开发过程中需要切换到别的分支处理问题,需要将未提交代码先暂存起来,等分支切回来复原暂存的代码
开发到一半发现整错分支了,将未提交的代码暂存,到正确的分支复原暂存的代码
读代码标记了很多注释,暂存下来,下次看时将标记和注释复原下来看

怎么使用


  1. 在这里插入图片描述
    执行完成之后编辑器内这些未提交的代码就不见了

  2. 找到stash管理里窗口在这里插入图片描述
    在这里插入图片描述

说明一下分支管理

网上搜一下gitflow,了解下行业内分支管理的最佳实践
会发现rebase和merge都适合与不同的场景,这里就不赘述了

2. 多次提交记录合并(利用rebase变基)

张三同学在写一个需求,边测试边改代码,一直在提交、测试,导致git log全是些无关紧要的message,特别不好看,很冗余
在这里插入图片描述
最终张三完成需求之后,打算把这些提交合并到一次提交中。
在这里插入图片描述
在弹出的对话框上操作
在这里插入图片描述
结果:
在这里插入图片描述

3. 同步分支

场景1 远程有,本地没有

在这里插入图片描述

场景2 分支本有,远程没有

push时远程仓库自动创建

github好用的技巧

// TODO

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值