TortoiseSVN使用-合并分支代码

这篇具有很好参考价值的文章主要介绍了TortoiseSVN使用-合并分支代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

TortoiseSVN使用-合并分支代码

3.4.12 合并分支代码

需求:这里为了演练一种场景,我主分支trunk_V01创建一个新的开发分支trunk_V02,然后主分支和新分支一起开发不同通能,最后我要把trunk_V02新分支合并到主分支trunk_V01上,要求是主分支新创建的文件要存在,新分支trunk_V02新创建的文件也要存在,冲突的相同文件名内容解决冲突即可。

说明:主分支trunk_V01里面只有一个文件text.txt文件,内容如图,然后将依照当前主分支创建新分支命名叫trunk_V02

TortoiseSVN使用-合并分支代码

接下来模拟两个分支不同开发,主分支创建新文件trunk_V01_01.txt,并且修改text.txt内容,然后新分支trunk_V02创建新文件trunk_V01_02.txt,并且修改text.txt内容,项目目录如图1,主分支如图2,新分支如图3

TortoiseSVN使用-合并分支代码

如图1

TortoiseSVN使用-合并分支代码

如图2

TortoiseSVN使用-合并分支代码

如图3
TortoiseSVN有2种合并方式

TortoiseSVN有2种合并方式:

TortoiseSVN使用-合并分支代码

  • 合并一个版本范围 Merge a range of revisions:此类型应用最为广泛,主要是把分支中的修改合并到主干上来。在主干上点击右键选择合并,然后选择合并类型:合并一个范围的版本。合并的源URL填写的是要合并的分支的URL,待合并的版本范围如果为空,则指的是合并分支上所有的版本,即自从分支创建以来到分支当前最新版本的所有演变。如果只是选择其中一个版本,或者几个版本,那么就表示只是将制定的n个版本的变化合并到主干上。如果只是选择其中一个版本,那么表示只是选择那个版本的修改,之前或之后的修改将不被采纳。
  • 合并两个不同的树 Merge two different trees:此类型与前1种类型不同,第一种类型可以选择分支合并的版本,主干不能选择版本;而这种类型则是无论是主干还是分支都可以选择合并的版本,即可以选择过去的一个主干版本与分支的某个版本进行合并。合并的时候以选择的分支版本为主,如果选择的主干版本与分支版本有不同的地方,合并时主干部分将被放弃
    • 起始URL:选择主干目录的URL(应当和当前工作副本的URL一致,这个是所谓的合并点)。
    • 结束URL:选择要合并的分支的URL。
    • 起始和结束的版本:一般起始版本应当找到最后一次同步时的版本,如果从没有同步过(第一次合并),则选择创建分支时的版本,结束版本一般是最新版本,如果你不想将某些内容合并进主干的话,也可以选择一个合并点。
演示场景1:(合并一个版本范围 Merge a range of revisions)

演示场景1:(合并一个版本范围 Merge a range of revisions)

  1. 第一步,在文件夹trunk_V01点击右键“合并”

TortoiseSVN使用-合并分支代码

  1. 选择第一种合并类型

TortoiseSVN使用-合并分支代码

  1. 合并源url选择trunk_V01的地址,将要合并的修改版本范围选择所有版本

TortoiseSVN使用-合并分支代码

TortoiseSVN使用-合并分支代码

TortoiseSVN使用-合并分支代码

  1. 打开合并后的文件夹查看,最终效果是:text.txt冲突了但解决了冲突之后拥有全新的代码,主分支trunk_V01新创建的文件trunk_V01_01.txt依然存在,新分支trunk_V02新创建的文件trunk_V02_01.txt也存在。(即:最终效果正确,就是我们想要的)

TortoiseSVN使用-合并分支代码

演示场景2:(合并两个不同的树 Merge two different trees),不设置主分支版本

演示场景2:(合并两个不同的树 Merge two different trees),不设置主分支版本

  1. 重复上面的第一步
  2. 选择第2种合并类型

TortoiseSVN使用-合并分支代码

  1. 选择起始、结束url,版本都用最新的版本

TortoiseSVN使用-合并分支代码

TortoiseSVN使用-合并分支代码

TortoiseSVN使用-合并分支代码

  1. 打开合并后的文件夹查看,最终效果是:text.txt冲突了但解决了冲突之后拥有全新的代码,但主分支trunk_V01新创建的文件trunk_V01_01.txt被删除了,新分支trunk_V02新创建的文件trunk_V02_01.txt存在。(即:最终效果不正确,新分支的确实都存在,但主分支新创建的文件全丢了)

TortoiseSVN使用-合并分支代码

问题:思考为啥这种方式对导致主分支新创建的文件丢失?

答案:因为创建新分支trunk_V02的时候主版本只有text.txt文件,而trunk_V01_01.txt是主分支后面新开发创建的,在合并的时候由于主分支采用最新版本情况下导致合并的时候不认识,所以导致合并会删除它。而场景3由于设置了主分支版本号,就相当于合并代码的时候是从主分支在最开始刚创建新分支的时候版本进行合并的,因此主分支新创建的文件trunk_V01_01.txt会被保留。

(我用大白话再表述一遍:当前主分支trunk_V01版本号为1的时候,主分支trunk_V01只有text.txt文件,这时候创建的新分支trunk_V02版本号为2,这时候分别开发提交自己代码,主分支trunk_V01新创建trunk_V01_01.txt文件并提交此时版本号为3,新分支trunk_V02也新创建trunk_V02_01.txt文件并提交此时版本号为4,此时再进行合并代码的时候由于新分支trunk_V02是从主分支trunk_V01版本号为1时创建过来的,所以SVN只认识主分支上版本号为1之前的所有改动,即只认识text.txt文件,而后来的trunk_V01_01.txt文件是主分支trunk_V01新创建的,所以SVN不认识,这就导致合并的时候给它删了。即:所谓的分支版本合并,就是把两个分支设置版本号之前的所有改动给统一合并代码。)

TortoiseSVN使用-合并分支代码

演示场景3:(合并两个不同的树 Merge two different trees),设置主分支版本

演示场景3:(合并两个不同的树 Merge two different trees),设置主分支版本

  1. 重复上面的前两步
  2. 主分支版本设置为创建新分支trunk_V02时候的版本,具体方法可查看“版本分支图”,选中新分支trunk_V02文件夹点击右键“版本分支图”查看,可以查看起始版本是116,说明主分支当时的版本是115(即在主分支115版本时进行创建了新分支trunk_V02,所以第三步这里输入115)

TortoiseSVN使用-合并分支代码

TortoiseSVN使用-合并分支代码

  1. 选择起始、结束url,主分支版本进行设置,新分支采用最新的版本

TortoiseSVN使用-合并分支代码

TortoiseSVN使用-合并分支代码

TortoiseSVN使用-合并分支代码

  1. 打开合并后的文件夹查看,最终效果是:text.txt冲突了但解决了冲突之后拥有全新的代码,主分支trunk_V01新创建的文件trunk_V01_01.txt依然存在,新分支trunk_V02新创建的文件trunk_V02_01.txt也存在。(即:最终效果正确,就是我们想要的)

TortoiseSVN使用-合并分支代码

结论总结:

结论总结:

结论1:“合并一个版本范围”方式是默认合并方式。

结论2:“合并一个版本范围”方式相当于往主分支最新版本上面合代码,因为它不像第二种方式可以指定主分支版本号。

结论3:“合并两个不同树“方式相当于更细化的合并操作,可以分别指派主分支和新分支的版本号进行两两合并,效果更自由。

结论4:“合并一个版本范围”方式和“合并两个不同树且设置主分支版本”方式效果是一样的。

结论5:“合并两个不同树且不设置主分支版本”方式,那么最终的效果就是:如果选择的主干版本与分支版本有不同的地方,合并时主干部分将被放弃。(这就是为什么演练场景2时发现主分支丢文件了,被删除了。)

本人其他相关文章链接

1.Windows下版本控制器(SVN) - 1、开发中的实际问题+2、版本控制简介
2.Windows下版本控制器(SVN)-验证是否安装成功+配置版本库+启动服务器端程序
3.Windows下版本控制器(SVN)-TortoiseSVN使用+权限配置+合并深度介绍+分支介绍
4.Windows下版本控制器(SVN)- 配置版本库
5.Windows下版本控制器(SVN)-启动服务器端程序
6.TortoiseSVN使用-授权访问
7.TortoiseSVN使用-TortoiseSVN更换或重置登录用户
8.TortoiseSVN使用-合并分支代码
9.TortoiseSVN使用-权限配置
10.TortoiseSVN使用-合并深度介绍文章来源地址https://www.toymoban.com/news/detail-423191.html

到了这里,关于TortoiseSVN使用-合并分支代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Git切换分支(创建本地分支,远程分支,合并分支代码)

    1 .创建本地分支 2 .本地切换到新创建的分支 对应的远程分支也会切换 3 .查看当前所在分支 4 .删除本地分支(先切换其他分支)(删除本地dev分支) 5 .创建远程分支 6 .删除远程分支 7 .提交代码 8 .分支合并 想合并develop到master 先进入master (可以先git status看看是否有冲突)

    2024年02月12日
    浏览(62)
  • Gitlab 合并分支代码到主分支上

    一、在 gitlab 项目中点击Branches(查看分支) 二、这时看到有24个滞后的提交  三、点击 Merge request 按钮  四、填写合并请求表单,等待核审; 这里主要是 2 步 1、选择 管理员  , 2、源分支 和 目标分支 要搞清楚;   五、提交完成后,会在这里显示;也可以对提交的请求进

    2024年02月11日
    浏览(51)
  • git 分支代码合并到master主分支(其他分支)上

    首先切换到分支 使用git pull 把分支代码pull下来 切换到主分支 把分支的代码merge到主分支 5.git push推上去,这样分支的代码就合并到主分支上

    2024年02月07日
    浏览(49)
  • git怎么把当前分支代码合并当指定分支

    场景:当前处于test分支,现在要把test分支代码的内容push到master里 1.切换到test分支(如果当前分支不是test才需要切换) 2.拉取test远程分支的代码(如果本地的代码内容和远程不一样,就拉,否则跳过) 3.切换到指定分支master 4.把test分支的代码合并到master 题外话,如果已经

    2024年02月12日
    浏览(62)
  • vscode 代码合并分支

    需要把master代码合并到dev,分支 首先确保master代码是最新 如果有冲突解决冲突,解决完之后提交dev分支的代码

    2024年02月06日
    浏览(21)
  • git撤销分支合并的代码

            如果您在 Git 中合并了分支,但是后来发现合并后的代码有问题,需要撤销合并并恢复到合并之前的状态,可以使用以下命令。 在子分支上提交代码,在远程厂库将子分支代码已经合并到了一个主分支上,操作流程如下:         在本地电脑上切换到已经合并

    2024年02月13日
    浏览(43)
  • Git合并分支代码的正确方法

    假定您之前已经装好了git,而且已经能git pull、git add、git commit -m “评论”、git push和创建分支等操作; 我的操作目的是:将分支开发的代码合并到主干上,所以使用git checkout master,切换到主干上。 进入Windows PowerShell,cd到你要操作项目的根目录,也就是.git文件所在的目录;

    2024年02月12日
    浏览(46)
  • git将master主分支最新代码合并到自己的分支

    1. 打开项目,切换到master主分支 2. 拉取master主分支最新代码 3. 切换到自己的分支dev 4. 把master主分支的代码合并到自己的分支dev上 5. 推送最新代码到自己的远程分支

    2024年02月12日
    浏览(45)
  • git-新建分支与提交代码命令(附删除、切换、查看、合并分支)

    注意:在你新建分支之前,你应该在master分支,并且要保证你当前的是最新代码,要不然最后提交代码就会出问题。 新建分支并切换到该分支: 在新建的分支上写完代码之后,就可以提交代码了。此时应该在你新建的分支上 注意:有报错就先pull一下代码再提交  

    2024年02月14日
    浏览(112)
  • git merge合并分支代码后如何回退合并操作

    这次问题产生的原因还是自己操作过于急躁了,新功能开发完成之后没有实时的与经理沟通就进行了新功能分支合并的操作,导致当前版本部分功能由于没有同步产生了一些问题,因此需要把代码进行回退操作; 但是分支代码修改了许多文件,并且已经推送到了远程仓库,手

    2024年02月08日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包