android开发使用git-tortoisesvn合并代码处理冲突的使用记录
-
工具Android studio,Git,tortoisesvn
-
作为Android开发的,android studio离不开,使用git管理项目也是离不开的,自行下载git并配置
-
这里的tortoisesvn主要用来合并代码并处理冲突,切换分支更新提交代码等等则全都是在android studio里完成,个人觉得更方便
-
为什么要使用tortoisesvn来合并代码并处理冲突android studio不行吗?android studio也行,不过难用不够智能,tortoisesvn工具比较智能会帮我们自动解决大部分冲突
-
-
安装tortoisesvn
-
安装完之后可以不用配置ssh访问仓库之类,因为我们只使用它合并代码处理冲突,不使用tortoisesvn拉取更新提交代码,只有出现冲突时才使用tortoisesvn打开并处理冲突,具体怎么使用下面介绍个人使用方法。
-
合并代码的步骤(这里以test分支合并到dev分支举例)
- 首先android studio控制台Git栏checkout切换到dev分支,New Branch From Selected居于dev创建一个临时分支premerge_from_dev分支
- 然后切换到premerge_from_dev分支,找到test分支并右键Merge Selected into Current(或者Rebase Current onto Selected使用rebase,rebase和merge区别自行网上查阅)将test分支merge进来到premerge_from_dev分支,这个时候可能出现冲突,直接关闭冲突弹框。来到premerge_from_dev分支对应的目录下,使用tortoisesvn打开。
- 右键TortoiseGit->Diff,就会显示所有的更改包括冲突,双击选择冲突文件,就会来的冲突解决的页面,一般左边是test分支的改动、右边是premerge_from_dev分支的改动、下面是??表示需要选择左边还是右边还是都选择,可以右键左边或右边进行选择,最后解决完了点击Mark as resolved关闭弹框即可。(当然也可以直接使用TortoiseGit->resolve...解决冲突,不过好像有点小问题使用起来不是很顺心,看个人习惯吧)
- 解决完冲突后回到android studio,在android studio里提交premerge_from_dev分支的改动。提交完后再回到dev分支,使用同样的方法将premerge_from_dev合并到dev分支,这个时候一般没有冲突。
- 为什么先来个premerge_from_dev分支过渡而不是直接合并到dev??为了降低风险呀,万一合并不顺利可以重新拉一个分支重新合并。而且很多大公司或者大项目,这个时候是不能直接给合并到dev的,而是提交merge request到dev分支让上级给你review没有问题后再合入dev分支的。
-
cherry pick代码的步骤(这里以pick一个test分支的提交到dev分支举例)
- 来到dev分支项目目录下,右键TortoiseGit->Show log,这个时候显示的是dev分支提交的log,左上角切换分支到test分支,还可以过滤时间提交者等等,找到想pick的那个提交
- 右键Cherry Pick this commit...(window下还可以按住shift键选择多个提交,右键Cherry Pick selected commit...),然后来到pick页面,continue就会自动pick过来了,如果有冲突会提示,双击冲突文件解决完冲突continue继续完成pick操作即可。