论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
开源技术
›
开源技术
›
新版IDEA中Git的使用(四)——解决辩论
新版IDEA中Git的使用(四)——解决辩论
天津储鑫盛钢材现货供应商
金牌会员
|
2024-12-1 23:13:36
|
显示全部楼层
|
阅读模式
楼主
主题
866
|
帖子
866
|
积分
2598
说明:之前先容过新版IDEA中Git的根本操作、分支操作和回滚代码,本文先容基于新版IDEA,怎样解决代码辩论。
制止辩论
解决辩论的最好方法就是不要发生辩论,这里我先容下面几点,可以制止代码辩论;
时常做pull、fatch操作,不要让自己本地仓库落后太多版本;
在分支操作,如切换分支、归并分支、拉取分支前,及时清理Change,保持自己分支干净;
在归并分支时,先拉取后归并,最好是切换到要归并的分支,拉代替码,再切回自己的分支拉取归并分支的代码;
对于不确定的分支,在操作前,先比较分支的差异,做到心里有数;
归并代码,慎重使用Cherry-Pick,可能会出现辩论;
逐条说明,第一点,时常做pull、fatch操作,如果你的分支是从dev主干分支或master分支分出来的,应该时常拉取dev主干分支或master分支的代码,以免背面归并的时候出现辩论,即便有辩论也能在拉取的时候解决,而不是到要归并的时候再解决,就像电影《教父》中说的,坏消息要早点汇报。
fatch操作,能更新远程仓库的分支。就是说,当有其他伙伴重定名了分支、新增、删除Git分支,要用fatch操作更新到自己本地仓库。
第二点,分支操作,及时清理Change,也是为了制止辩论,这是一个好习惯。如果本分支做了修改,没有commit大概Shelve Changes,在切分支的时候,就会弹出这个选择框,很不爽。
另外在回滚代码的时候,如果你分支的代码都清理掉了,没有未Commit的代码,回滚出现下面的弹框,选择Hard照旧Keep结果都是一样的,这两个选项的区别在于对未commit代码的操作。
第三点,归并分支前,最好先拉取,这是常识,就像用SVN要先更新再提交一样。由于你不拉取远程仓库的最新代码,在push的时候,就会提示要Merge照旧Rebase,这不是给自己找麻烦吗?
第四点,对于不确定分支,在操作前,先比较一下分支差异,可以用下面的这个选项(Compare with),可以比较Commit的差异。如果甲分支的所有提交在乙分支都有,大概差异的部分正是乙分支本次开辟,新提交的。这说明乙分支是从甲分支里拉出来的,放心归并吧。
比较分析
最后一点,归并代码有几种方式,Merge、Cherry-Pick,尚有一种Get,就是比较分支差异,直接获取文件到当前分支。Merge是归并代码的主流选择,Cherry-Pick,可以将另一分支的指定Commit归并到当前分支,非常方便,但是有出现辩论的可能。
设想一个场景,有两位开辟同事,张三、李四,两位同事都是基于main-dev分支,拉出自己的开辟分支,如下:
张三在自己分支归并完代码,都是用Cherry-Pick的方式,将代码归并到main-dev分支的,而李四则是用Merge的方式归并的。假设有个文件Other.txt是在main-dev分支上的,张三和李四的分支都有这个文件,李四修改了这个文件的内容,并且Merge到了main-dev分支,张三一直都没有修改这个文件,然后在后来的一天,想要把代码Merge到main-dev分支,就会出现辩论。
这是由于张三一直用的是Cherry-Pick,只是把自己的提交合到了main-dev分支,少了让自己分支与main-dev分支同步这一步,固然方便了,但是后续归并代码就非常坑了,以往文件有辩论的都要解决,可能时间都过去了好久。
通过Git分支图,也可以看到张三这条分支(紫色的),单开后,一直是孤立的,没有合到主干分支。
但话说返来,Cherry-Pick也有使用场景,如果你们项目标分支管理是一个任务对应一个分支,像main-dev-zhangsan-手机短信登录开辟,任务完成,代码合到稳定分支,就把此分支删除掉,这种情况使用Cherry-Pick就很方便,不存在辩论的。
解决辩论
如果辩论无法制止,如下,只能手动解决了,
Accept Yours:使用你版本的代码;
Accept Theirs:使用他们版本的代码;
Merge:手动归并;
这里的你的,他们的,是当前分支的角度。如把main-dev-zhangsan分支 into main-dev分支,这里的your就是main-dev分支,Theirs就是main-dev-zhangsan分支。
Merge界面如下,可选择对应的箭头(>>)大概叉号(X),采取对应的代码,所有的辩论解决完,点右下角的Apply这个文件的辩论就解决完了
如果不想解决,点Cancel,背面可以在分支上选择Resolve Conflicts...(继续解决),大概点Abort Merge(放弃归并)
Abort Merge:放弃归并,Abort,夭折的意思;
Resolve Conflicts…:解决辩论;
如果是Cherry-Pick出现的辩论,在下拉列表最下面,会有Abort Cherry-Pick的选项
解决辩论大概云云,需要注意,当你无法把握发生辩论的代码时,最好找来发生代码辩论的同事一起看,并问下归并代码的方式(Merge照旧Cherry-Pick),不要自顾自地归并。
总结
本文先容了在新版IDEA中Git使用的解决辩论,其他文章参考下面:
新版IDEA中Git的使用(一)——界面先容、根本操作
新版IDEA中Git的使用(二)——分支操作
新版IDEA中Git的使用(三)——回滚代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
天津储鑫盛钢材现货供应商
金牌会员
这个人很懒什么都没写!
楼主热帖
linux shell 脚本 入门到实战详解[⭐建 ...
Flutter 3.0 发布啦~快来看看有什么新 ...
我与Java Boy的10年-从小白到资深架构 ...
读Java性能权威指南(第2版)笔记06_数 ...
影音娱乐应用开发,这些关键词请查收 ...
zset底层的数据结构为什么使用调表而不 ...
腾讯会议使用OBS虚拟摄像头
SpringBoot中Tomcat和SpringMVC整合源 ...
软件测试
用SkyWalking监控MySQL(一)工具与方 ...
标签云
存储
挺好的
服务器
快速回复
返回顶部
返回列表