之前写了一篇纯文本版的,过于简短了点,这里再补个图文的

合并的理解

最后提交到哪个分支,最终代码就是合并到了哪个分支

感觉最近对代码合并的理解更加深入了一点,以前基本上是多个分支最终会合并到主干,大部分情况就可以满足了
那么分支与分支,主干与分支之间怎么相互合并了,为什么会有这种需求呢,说个例子就明白了:

比如,现在有1个主干,2个分支,假如名称如下:

  • trunk
  • branches-001
  • branches-002

考虑:现在 trunk 有一个紧急的 bug 修复了,那么 branches-001 和 branches-002 怎么办?
嗯,主干既然已经修复了,那么分支合并到主干时候不就都好使了么?

然而我这里的情况是:branches-001 分支其实也是一个生产环境,所以 trunk 的 bug 修复代码其实需要合并到 branches-001 分支;如果对 trunk 的改动比较大的话,建议先新建一个 bugfix 的分支,测试通过之后再合并到 trunk 和 其他分支上

说了那么多,其实没那么复杂:
B 要合并到 A,那么本地就切换到 A 的代码,然后把 B 的部分代码拉取到本地,修改(合并、解决冲突)后提交即可

回想一下我们怎么提交代码的:修改本地代码,然后提交就完事了

合并其实也就是修改本地代码,只是代码已经写好了(分支上),拿过来粘贴(IDE处理)到了本地,然后再提交的 最后提交到哪个分支,最终代码就是合并到了哪个分支 记住了这句,妈妈再也不担心以后合并的时候傻傻分不清楚了

IntelliJ IDEA

个人觉得 IDEA 就是专门为 java 开发者量身定制的 IDE。用过几年 Eclipse 和 MyEclipse,后来就一直用 IDEA 了,初学者可能会有很多不适应,熟练后绝对可以提高生产力的。代码提示,重构,源代码管理方面做得不错,以后再慢慢介绍吧

这里介绍一下 IEDA SVN 的使用:

  • 浏览/添加 SVN Repository :菜单 VCS -> Browse VCS Repository -> Browse Subversion Repository...
  • 版本管理查看:菜单 View -> Tool Windows -> Version Control (或者 CMD+9)

SVN的版本管理器:  版本管理管理器

  • Local Changes : 本地代码变更后未提交的,会出现在这里,最常用的就是:提交、回滚、对比代码,可以配置多个 Change List,方便分组管理
  • Repository Changes : 这里其实是仓库提交日志:谁在什么时候提交了什么问题,变更了多少代码,对应的版本号是多少
  • Incoming Changes : 别人已提交的,本地还没有更新的
  • Subversion Working Copies Information : 这里展示的是本地副本信息,这里可以配置分支路径,合并代码也在这里
  • Update Info : 这里可以看到刚刚更新下来哪些代码

合并步骤(图文)

1.切换到主干:CMD+T 所有项目可以一起更新 (更新代码,切换分支都适用)

2.切换到版本管理器界面:CMD+9

3.切换到:Subversion Working Copies Information Tab 页面,找到需要合并的主干

4.点击 Merge From... 按钮,选择分支

5.选择具体需要合并的分支

6.选择合并方式:Quick Manual Select 快速手动选择,这个最快,首选

7.选择对应的版本号列表:一般是从分支创建到最新,具体看需求,可以只选择部分变更,选中后右侧会展示对应变更的代码

8.开始合并后需要等待一会儿,人品好的话(没有冲突),分支代码就直接合并到本地来,弹出的提示框可以直接提交本地代码,也可以暂时放弃,之后再提交; 人品不好的话,就需要处理冲突了,解决冲突的界面有3列,左侧的是本地的,中间是合并结果,右侧是拉取的远程代码,3个对比着看还是比较方便的,这块暂时没有图,以后再补上


参考:



blog comments powered by Disqus

Published

02 July 2017

Tags