git客户端合并分支_git合并分支到master_git分支合并到主干

ZGIS | 创享天下

SVN 分支(branch)与主干(trunk)代码合并

在信息技术飞速发展的今天,为了加快开发的效率,提升各个部门的联动配合,SVN工具成为了我们必不可少的研发工具。

日益更新的用户需求和不断升级的版本,如何才能做到灵活控制版本,今天我们请到了智博创享web端开发大牛卢建敏,他将分享使用SVN的心得和经验。

版本库(repository)和项目创建

1、本地版本库(Repository)的创建

版本库(repository)的创建很简单,假设我要在E:zbcxTestRepository目录中创建版本库(repository),只需右键TestRepository文件夹或者在文件夹里右键,依次选择”TortoiseSVN” -> “在此创建版本库”,在弹出的窗口中选择创建目录结构。

完成后,启动版本库浏览器,查看创建好的目录结构。如此,版本库(repository)的创建完成。

git合并分支到master_git分支合并到主干_git客户端合并分支

注意:文件夹里必须是空的且没有写保护

git客户端合并分支_git合并分支到master_git分支合并到主干

git客户端合并分支_git合并分支到master_git分支合并到主干

2、trunk文件夹下创建新项目

在版本浏览器中创建文件夹加入文件

git客户端合并分支_git分支合并到主干_git合并分支到master

3、Check out

假设要从中央版本库中check out工程到本地目录。

在E:zbcxAppWeb目录下创建文件WebLyZsTest,然后在该文件夹上或文件夹里右键,选择”SVN 检出…”,在弹出的窗口中的”版本库 URL “中填入中央版本库的地址,其他默认即可,最后点击确定。

git合并分支到master_git客户端合并分支_git分支合并到主干

4、从主版本(trunk)创建分支版本(branch)

在WebLyZs/trunk目录上右键,依次选择”TortoiseSVN” -> “分支 /标记…”,在弹出窗口的”至路径”中填入分支的地址,在这里目标revision选择 “版本库中最新版本”,如下图所示,添加log后点击ok分支便建立了。

这个操作速度非常快,新建的branch在repository中其实只是一个指向trunk某个revision的链接而已,并没有真的复制文件。

合并简介

1、合并一个范围的版本

此类型应用最为广泛,主要是把分支中的修改合并到主干上来。

在主干上点击右键选择合并,然后选择合并类型:合并一个范围的版本。

合并的源URL填写的是要合并的分支的URL,待合并的版本范围如果为空,则指的是合并分支上所有的版本,即自从分支创建以来到分支当前最新版本的所有演变。

如果只是选择其中一个版本,或者几个版本,那么就表示只是将制定的n个版本的变化合并到主干上。

如果只是选择其中一个版本,那么表示只是选择那个版本的修改,之前或之后的修改将不被采纳。

2、合并两个不同的树

此类型与前两种类型不同,第一种类型可以选择分支合并的版本,主干不能选择版本;

而这种类型则是无论是主干还是分支都可以选择合并的版本,即可以选择过去的一个主干版本与分支的某个版本进行合并。

合并的时候以选择的分支版本为主,如果选择的主干版本与分支版本有不同的地方,合并时主干部分将被放弃。

起始URL:选择主干目录的URL(应当和当前工作副本的URL一致,这个是所谓的合并点)

结束URL:选择要合并的分支的URL。

起始和结束的版本:一般起始版本应当找到最后一次同步时的版本git分支合并到主干,如果从没有同步过(第一次合并),则选择创建分支时的版本,结束版本一般是最新版本,如果你不想将某些内容合并进主干的话,也可以选择一个合并点

主版本修改同步到分支版本

1、branch提交一个新文件

2、trunk紧接着提交一个修改

3、branch再次提交一个修改

4、将trunk中的修改同步到branch

1-3展示的是branch和trunk在独立、并行地开发。

为了避免两者的代码差异越来越大,后期难以合并。现在branch意识到是时候和trunk来同步一次代码(将trunk合并到branch)。

首先,在本地trunk中先update一下,有冲突的解决冲突,保证本地工作副本和版本库中trunk已经完全同步;

然后在分支工程WebLyZsBranches上右键,依次选择”TortoiseSVN” -> “合并…”,在弹出的窗口中选择第一项”合并一个范围内的版本”,适用于将某个分支或主版本上提交的多个revision间的变化合并到另外一个分支上。

git合并分支到master_git分支合并到主干_git客户端合并分支

点击下一步后,出现如下窗口:

由于是要从trunk合并到branch,理所当然这里的”合并的源URL”应该填trunk的路径,版本范围是你要将trunk的哪些revision所对应的变化合并到branch中;

可以是某一连串的revision,比如4-7,15-HEAD,也可以是某个单独的revision号。点击下一步后出现下图:

git合并分支到master_git客户端合并分支_git分支合并到主干

在这里建议忽略空白字符串的变化其余保留默认设置即可。

在点击合并按钮前你可以先试下测试合并,看成功与否,以及合并的详细信息。点击合并按钮后trunk所做的修改将同步到branch中。

5、提交合并后的branch

至此,branch已经完全和trunk同步,branch和trunk的代码暂时没有冲突,如果branch已经开发结束git分支合并到主干,那是时候将branch合并回trunk了,当然,如果branch还要继续开发,那你将不断地重复1-5这几个步骤。

注意:主版本修改合并到分支版本时,会以主板本为准,主版本修改后的新代码会覆盖调分支版本的代码,主板未修改的代码不会覆盖分支版本修改后的新代码,当两边同一行(块)代码同时发生修改,这时合并会发生冲突,按照正常的代码冲突解决方式去处理。如下图所示

git客户端合并分支_git合并分支到master_git分支合并到主干

将分支版本代码合并回主版本

1、将branch合并回trunk

一、单分支合并:

在本地trunk工程WebLyZs上右键;(注意是在主线的目录里右键)

依次选择”TortoiseSVN” -> “Merge…”,在弹出的窗口中,Merge type选择第二项“合并一个版本范围”’”,这种类型的合并适合在单分支开发结束后将所有的改动合并回主线。

git分支合并到主干_git客户端合并分支_git合并分支到master

点击下一步后出现如下窗口:

在这里,”From URL”选择branches/v2.3.1.20180228,选择所有或指定版本分支修改合并到trunk。后面的步骤和上文合并步骤一致,如有冲突参照前面的情况解决。

二、多分支合并:

git合并分支到master_git分支合并到主干_git客户端合并分支

参考单分支的分支操作,而多分支的情况相对复杂一些,分为两种:

分支中的起始版本一致

比方说现在有两个分支,分支branchesA 和分支branchesB 。

主干trunk 版本100 ,分支branchesA的版本101 ,分支branchesB的版本号102。

它们都是从主干trunk版本100 上创建的。

当分支branchesA和分支branchesB都各自完成开发,并且提交到SVN 上后。branchesA的版本号为111 ,而branchesB的版本号为120 。

分支起始版本一致

此时必须两步操作,并且操作在主干trunk的工作副本内执行:

1) 主干trunk合并分支branchesA

2)合并分支branchesA 后再继续合并分支branchesB

注意:完成第一步的时候不必提交。

整个合并的逻辑过程如下图所示:

git分支合并到主干_git合并分支到master_git客户端合并分支

分支中的起始版本不一致

假设现在有两个分支,分支branchesA 和分支branchesB 。

分支branchesA 是从主干trunk版本100 上创建,分支branchesA 版本101 。

创建分支branchesA 后,主干上又做了其他修改,并且更新成版本102 。

然后主干trunk版本102 的基础上创建分支branchesB ,分支branchesB版本号为103 。

两个分支各自开发,最终分支branchesA 版本号为112 ,而分支branchesB 的版本号为121 。

此时合并操作应该为三步,多的一步其实就是把起始版本统一:

1) 分支branchesA 更新主干100-101 的更新,在分支branchesA 的工作副本内执行。

2) 主干trunk合并分支branchesA

3)合并分支branchesA后的主干trunk合并分支branchesB

整个合并的逻辑过程如下图所示:

git合并分支到master_git客户端合并分支_git分支合并到主干

2、提交合并后的trunk

合并后的项目上右键, Commit。

3、删除branch

如果此时新加的功能已经开发完成并稳定运行,分支的使命已经完成,你可以删除你的分支,清理版本库。

4、查看log信息

至此,SVN版本合并的功能已经展示完成,开发者可以在log中可以找到之前合并的信息,了解当前代码所处的状态。

git合并分支到master_git分支合并到主干_git客户端合并分支

写在最后

git合并分支到master_git分支合并到主干_git客户端合并分支

分享知识的时光总是短暂的,我们希望每一次的分享都能让大家受益匪浅,不论是产品的分享,还是技术的探讨,每一次机会都弥足珍贵。

感谢我们本次的智博小咖,为我们带来这次知识的饕餮盛宴。

git合并分支到master_git客户端合并分支_git分支合并到主干

卢建敏

● 拥有地理信息系统软件开发5年经验

● 智博创享web端核心开发工程师

明日就是清明小长假了,在这里小编代表智博创享全体员工送您一份真诚的祝福:

让风筝飞,

飞走忧愁。

请踏青去,

去除烦恼。

把祖先祭,

祭走哀伤。

将柳枝插,

插满生机。

清明节至,

智博创享祝福您

健康平安,顺风顺水,吉祥如意。

PS:

点击原文阅读可查看公众号文章目录~

限时特惠:本站每日持续更新海量设计资源,一年会员只需29.9元,全站资源免费下载
站长微信:ziyuanshu688