虽然一直都在用svn作项目管理,但是一直都是傻傻的分不清主干、分支。今天小编就来详细介绍一下:

【branch】

分支:版本控制系统的一个特性就是能够把各种修改分离出来放在开发品的一个分割线上。这条线就被称为分支。分支经常被用来实验新的特性,而不会对开发有编译错误的干扰。当新的特性足够稳定之后,开发品的分支就可以混合回主干线上。

按照Subversion的说法,一个branch就是主干项目的一个拷贝,如下图所示:

每一个trunk下面的项目都有好多分支。因为开发团队中的成员有多个,每个成员为了保证工作的团队效果,同时又不影响其他同时的开发以及线上的项目,需要在自己的分支上进行代码操作,并不断地提交自己的修改,从而使得每一次修改在repository中都有记录。简单说来,branch存在的意义在于,在不干扰trunk的情况下,和trunk并行开发,等到开发结束以后合并回trunk中。

假设一个这样的场景:

项目组长分配了一个开发新功能(新增支付宝支付方式)的任务给小冯,于此同时小董正在做一个使用银行卡支付的功能。这两个功能有很多公用的js和css等。这个时候,如果小冯不创建自己的分支,而是直接在主干项目上进行开发提交,就会直接影响到小董正在进行的项目的效果,这两个人就会陷入无限的版本冲突或恢复版本的死循环中,两个人本来关系还不错,但是还可以会因为给彼此造成的不良影响而影响同事之间的关系等等。。。

从而,可以通过分支开发,每个人都在自己的分支上进行功能的开发测试。就会省却好多不必要的冲突问题。等到开发完成之后,再将最终代码合并到主干项目中去。我想这才是SVN设置分支、主干的意义所在。

那么,如何建立自己的分支并进行合并分支的操作呢?

第一步,需要查看一下项目中是否有trunk、brunches、tag这三个基本的文件夹:

第二步,需要在brunches文件夹中新建自己的分支:

第三步,在自己的分支文件夹中copy一份主干中需要自己负责的代码:

完成了这三步,就可以在分支上开发自己的项目了。

第四步,待项目完成之后,需要合并分支到主干上。

进入到CollabNet Merge设置界面,一路next,

更新完成之后,点击next,进入下一步:

然后点击Finish就完成了合并分支到主干啦。

【trunk】

主干,作为开发主目录。一般存放的是当前最新最稳定的代码以及其他项目资料。每个项目通常只有一个主干。

我们在分支上将程序开发完成并通过测试后,需要将其合并到主干上面。

那么,如何合并主干呢?

第一步,需要下载一份trunk上的代码,然后在需要合并到主干上的项目上右击Merge并进入:

一路next,然后进入

下一步,点击Merge

然后,会弹出提示:

至此,就完成了合并主干啦。

【tag】

tag,字面意思是图标,在SVN里面也是做标记的意思。举个最简单的例子。咱们所做的项目不可能只是一个版本,很多情况下会是版本不断迭代更新的。从V1.0到V2.0、V3.0等。这个时候就可以使用tag做版本的标记了。
具体打tag的方式就是,将目前最新版最稳定版本的代码及其他资料,全部备份到tag文件夹中,并做好版本记录。
【学习小结】
通过这次的SVN实践,对里面的主干、分支以及打tag有了清楚的认识。真是实践出真知。大家也快尝试一下吧。

转载于:https://www.cnblogs.com/fengkungui/p/6789588.html

SVN中trunk、branch、tag区别相关推荐

  1. SVN的trunk branch tag

    Subversion有一个很标准的目录结构,是这样的. 比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是 svn://proj/|+-trunk+-branches+-t ...

  2. SVN trunk branch tags 区别

    Trunk: 主工作目录,从开始编码到当下所有开发功能,测试,最新代码. Branches: 分支目录 1.Truank的重要版本发布后 创建一个分支上后可修复Bug; 2. 在不影响Trunk的前提 ...

  3. SVN中trunk、branches、tag的使用

    我相信初学开发在SVN作为版本管理时,都估计没可能考虑到如何灵活的运用SVN来管理开发代码的版本,下面我就摘录一篇文章来简单说明SVN里的trunk,branched,tags这个三个文件目录的用法. ...

  4. SVN中trunk,branches,tags用法详解

    Subversion有一个很标准的目录结构,是这样的. 比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是 svn://proj/|+-trunk+-branches+-t ...

  5. SVN 中trunk、branches、tags都什么意思

    为什么80%的码农都做不了架构师?>>>    1.trunk是主分支,是日常开发进行的地方.2.branches是分支.一些阶段性的release版本,这些版本是可以继续进行开发和 ...

  6. SVN 中trunk、branches、tags都什么意思?

    1.trunk是主分支,是日常开发进行的地方. 2.branches是分支.一些阶段性的release版本,这些版本是可以继续进行开发和维护的,则放在branches目录中.又比如为不同用户客制化的版 ...

  7. 理解SVN中trunk,branches,tags

    2019独角兽企业重金招聘Python工程师标准>>> Subversion有一个很标准的目录结构: project +-- trunk +-- branches +-- tags  ...

  8. SVN中tag branch trunk用法详解

    来源:http://developer.51cto.com/art/201005/201718.htm 本节主要讲解一下SVN中tag branch trunk的用法,在SVN中Branch/tag在 ...

  9. svn 主干(trunk)、分支(branch )、标记(tag) 简介

    在SVN中Branch/tag在一个功能选项中,在使用中也往往产生混淆. 在实现上,branch和tag,对于svn都是使用copy实现的,所以他们在默认的权限上和一般的目录没有区别.至于何时用tag ...

最新文章

  1. CSS中expression使用简介(转载)
  2. android 悬浮球简书,轻松自制flyme悬浮球
  3. 面向.NET开发人员的Dapr——服务调用
  4. CF204E-Little Elephant and Strings【广义SAM,线段树合并】
  5. [手把手教]discuzX2插件制作教程__最菜鸟级别的入门坎 【二】
  6. virtualbox linux通用网卡,详解VirtualBox + CentOS 虚拟机网卡配置
  7. 实时监测tcp链接状态_实录基坑坍塌,让你重视基坑监测!
  8. Python学习笔记三(文件操作、函数)
  9. 亲密关系沟通-【价值感】-确保价值感的沟通方法
  10. 隔离 docker 容器中的用户-------分享链接
  11. mongodb php存储日志,laravel 框架使用mongodb 保存日志
  12. Linux之zip命令
  13. Web前端开发-网页制作零基础入门-Dreamweaver2019+HTML+CSS视频教程
  14. 数据分析的同比和环比以及其在excel中的应用
  15. IDEA中修改项目与Moudle名称方法总结
  16. 【千锋Python2205班8.29笔记-day06-冒泡排序和字符串基础】
  17. 数字时代的“文艺复兴”?起底数字藏品,让人欢喜让人愁
  18. 利用dsp电机测速及详解
  19. Android安全启动学习(五):Android Verified Boot 2.0
  20. 苹果A系列芯片的三年AI进化:为何要大规模升级AI算力?

热门文章

  1. 学习 jQuery UI
  2. Linux执行mount挂载覆盖文件的还原
  3. CentOS6.9编译安装Nginx1.12
  4. 程序员如何对待自己的工作
  5. Python 小程序(2)
  6. java使用正则表达为数字添加千位符的简单方法
  7. “雪花”项目:Microsoft探索在.NET中实现手工内存管理
  8. Codeforces Round #309 (Div. 2) C
  9. Java JSON、XML文件/字符串与Bean对象互转解析
  10. leetcode--Reverse Integer