使用IDEA工具处理git合并后的辩论的细节
使用 IDEA 处理合并(merge)使用IDEA处理git合并如果碰到辩论,对辩论文件的不辩论部门须要处理吗?会自动将双方不辩论的部门合并吗?
比如如下,使用 IDEA 合并 branch1 到 branch2 分支,出现了辩论,如下图:
https://i-blog.csdnimg.cn/blog_migrate/ccda8d18001624aca0818cfd630eeb0c.png
如果处理好辩论,得到如下图:
https://i-blog.csdnimg.cn/blog_migrate/70399456a201cbb8b4dbbe334a6f34a5.png
我的问题是,绿色的部门如果不更新到中心的Result里头,在点击 Apply 之后会不会丢失掉?答案是会丢失,没有辩论的部门也得你操作点一下!中心的Result就是合并后的样子!
我为什么会有这个疑问,由于我以前是风俗直接使用命令行 git merge 来合并的,合并之后搜索 <<< 来确定有辩论的位置(当然也可以检察实验 git merge 命令后会列出辩论的文件列表),以前用git merge命令都是会自动合并没有辩论的部门,以是我改成用 IDEA 的图形化工具之后有这样的疑问
下面是上述结论的实践证实
假设我们如今不将绿色无辩论的部门手工弄到中心的Result,继续点击Apply,则 IDEA 照旧比较人性化给你弹出提示,告知你还有未处理完的合并
https://i-blog.csdnimg.cn/blog_migrate/6216b2b496a5c0f0ba94dd5c71a99fdb.png
此时如果点击 Continue Merge 就相当于继续处理剩余的,如果点击 Apply Changes and Mark Resolved 就是继续(老子就要这么干)
点击 Apply Changes and Mark Resolved 后就可以看到最终的合并结果丢失了两边绿色的内容,如下图:
https://i-blog.csdnimg.cn/blog_migrate/95108095f631678ff58dc597703df79d.png
细节
细节1:diff算法范围性
注意到diff算法的一些范围性。本该是显示新增的,结果显示为修改。
受限于差异算法,红框里的部门着实应该辨认为新增内容,但是算法无法这么智能地辨认这是新方法,它以为只是第一个方法即 getProfiles() 的延伸!!你可以看到红框里末了一个 } 被认为和原getProfiles() 方法的 } 雷同,如下图:
https://i-blog.csdnimg.cn/blog_migrate/472b9e853c12c027b2cc5d38c2062d31.png
细节2:从哪里可以看到什么分支合并到什么分支
在处理辩论的页面可以看到
https://i-blog.csdnimg.cn/blog_migrate/3c0584520b350e5fc219b73260e321d7.png
另外还可以从下图看出(如果有辩论,最左边的就是 “合并到” 的分支)
https://i-blog.csdnimg.cn/blog_migrate/fe972cc6189d749e3ff737a5b9c74e40.png
偶然候也非常奇葩,不显示分支名,显示的revision,不知道为什么。比如如下图是合并branch2到branch1,结果branch2被现实成revision,可读性变差了!!
https://i-blog.csdnimg.cn/blog_migrate/533da5181c91eb799a75a6cfeda11302.png
细节3:“a合并到b” 和 “b合并到a” 就是显示的结果反过来而已
https://i-blog.csdnimg.cn/blog_migrate/7f8ed080d4328940eca15499283c799b.png
细节4:保留左边照旧右边?
合并的时候自然可以选择保留两边任意一边的,也可以两边都保留,也可以两边都不采取。中心的Result栏你要怎么改就怎么改,反正你在Result看到的就是最终的合并后的结果
如下图,可以不采取左右两边的,最终结果使用一个新的变量名
https://i-blog.csdnimg.cn/blog_migrate/52b35067bdec6c84308a538e15318da0.png
细节5:处理完辩论之后,有没有一键左右两边的都合并到中心?
处理完某个文件中的辩论部门后,偶然候左右两边的 >> 和 << 太多了,一个个点完了左边的>>还要一个点右边的<< 太费劲了,有没有快速的一次性将左边的>>全部采取,和一次性右边的<<全部采取,又大概一次性将左右两边的全采取?
着实是有的
[*]点击 “>> Left” 这个则把左边无辩论的、全部的change应用已往(这样就不须要逐个点击,同时有辩论的不会一起已往)
[*]点击 “>> Right” 这个同理把右边无辩论的、全部的change应用已往
[*]点击 “>><< All” 则相当于点击了上面的两个按钮,同样的,会把无辩论的、全部的左右的change应用
https://i-blog.csdnimg.cn/blog_migrate/9c06598bee2ce552501b2778baefcfa7.png
注意:
1、发起照旧一个个点击会比较放心,除非你真的很自信你的操作没有问题。
2、上面的操作可以通过ctrl+z或cmd+z取消
细节6:IDEA 右下角的分支终于会自动刷新了
实测Mac版本的 IDEA Ultimate Edtion 2023.1.3,在Terminal中切换分支,右下角显示的分支终于会及时刷新了(之前在Terminal中使用git checkout myBranch 之后并不会及时变革,要等鼠标点击到别的地方的时候才会刷新)
https://i-blog.csdnimg.cn/blog_migrate/e8dd7005bccd69c9d9028958e5417a9e.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]