分支策略

一般采用一个MAIN分支,一个或多个DEVELOPMENT分支的分支结构,如下图(来自:https://msdn.microsoft.com/en-us/library/ee782536.aspx):

这个结构有以下几个要点:

  1. MAIN分支包括所有的功能,并且这些功能是通过集成测试的(integration tests),换句话说,MAIN分支的代码是可以release的。
  2. DEVELOPMENT分支包含正在开发中的代码。在此分支中的功能通过集成测试后,可以合并的MAIN分支中(把DEVELOPMENT分支中的代码合并到MAIN分支的过程称为反向集成reverse integration,那么把MAIN分支中的代码合并到DEVELOPMENT分支的过程就称为正向集成forward integration)。
  3. types of builds.

建立分支/合并分支的操作方法

folder和branch:1.从一个分支中创建一个分支,在后者中在创建一个分支,这样分支会形成一个层次结构;2.但是在Source Control Explorer中,各个分支之间是看不出层次关系的,TFS使用folder来组织各个分支的,也就是根据分支的作用不同可以放在不同的folder中;3.虽然可以在folder与folder之间进行分支和合并,但是最佳实践是只在分支之间进行分支和合并的操作。

一句话总结一下folder和branch:用folder来组织各个分支;在分支上进行分支和合并操作。

在Source Control Explorer中:

  1. 新建一个folder,准备将分支建立在该folder中;
  2. 把准备作为MAIN分支的folder,转换成branch;
  3. 在MAIN分支上右击,选择Branching and Merging => Branch...,在弹出的窗口中填写Target Branch Name后,点击“Branch”按钮,就会创建一个分支;
  4. 在新分支上右击,选择Get lastest version,将该分支的代码获取到本地。获取到本地的代码会保存在与其他分支不同的文件夹中(也就是每个分支在本地都有一个不同的working folder);
  5. 转到新分支上,进行开发、测试,同时要经常把MAIN分支中的代码合并到自己的新分支上(在Source Control Explorer中,在新分支上右击,选择Branching and Merging => Merge...,在弹出的窗口中填写Source Branch(是其中的代码要合并到其他分支中的分支)和Target Branch(是接受其他分支中代码的分支),点击“Next”按钮,最后点击“Finish”按钮,完成合并);
  6. 自己的新分支中代码完成开发、测试后,要合并到MAIN分支中,操作方法同5,只是Source Branch和Target Branch互换一下;
  7. 从其他分支合并来的代码,在本分支上将处于签出状态,需要在分支上执行签入操作,代码才最终完成合并。

VSO-Branch和Merge的更多相关文章

  1. eclipse git 一个错误:the current branch is not configured for pull No value for key branch.xxx.merge found

    eclipse git 一个错误:the current branch is not configured for pull No value for key branch.xxx.merge fou ...

  2. 解决The current branch is not configured for pull No value for key branch.master.merge found in config

    使用Git Pull项目的时候出现这个问题: The current branch is not configured for pull No value for key branch.master. ...

  3. SVN中Branch和Merge实践

    参考资料:http://blog.csdn.net/eggcalm/article/details/6606520 branch主要用于新功能的开发,开发过程中不断从trunk merge revis ...

  4. svn branch and merge(svn切换分支和合并)详解

    下文的实践主要是参考了TortoiseSVN的帮助文档和Subversion的在线文档,Subversion的在线文档:http://svnbook.red-bean.com/en/1.5/svn-b ...

  5. 解决The current branch is not configured for pull No value for key branch.master.merge found in confi

    1.在本地工程目录找到config文件(我的是在E:\rocket\rocket\.git): 2.修改config文件内容为: [core] repositoryformatversion = fi ...

  6. Git hub pull时候的错误 : The current branch is not configured for pull No value for key branch.master.merge found in configuration

    网上多半都是命令行下的解决方案,我用的是EGit,所以要在eclipse里(我的版本是kepler)把下面这句话添加到配置文件中. Window->Preference->Team-> ...

  7. SVN版本管理trunk及branch相关merge操作

    先说说什么是branch.按照Subversion的说法,一个branch是某个development line(通常是主线也即trunk)的一个拷贝,见下图: branch存在的意义在于,在不干扰t ...

  8. 解决Git报错:The current branch is not configured for pull No value for key branch.master.merge found in configuration

    1.在本地工程目录找到config文件(我的是在D:\git\demo\.git):2.修改config文件内容为: [core] repositoryformatversion = 0 filemo ...

  9. git:解决The current branch is not configured for pull No value for key branch.master.merge found in config

    网上多半都是命令行下的解决方案,我用的是EGit,所以要在eclipse里(我的版本是kepler)把下面这句话添加到配置文件中. Window->Preference->Team-> ...

  10. Git 解决同步 No value for key branch.master.merge found in

    [core] repositoryformatversion = 0 filemode = false logallrefupdates = true [remote "origin&quo ...

随机推荐

  1. Linux学习笔记(2)-开机

    今天开始学习Linux系统. 打开虚拟机,输入密码后,令人激动的画面就蹦出来了-- Ubuntu的主要基调是橙色,给人一种蠢萌蠢萌的感觉,和Windows不同,它只在左边有一条任务栏,上面有些东西,搜 ...

  2. 【BZOJ1672】[Usaco2005 Dec]Cleaning Shifts 清理牛棚 动态规划

    [BZOJ1672][Usaco2005 Dec]Cleaning Shifts Description Farmer John's cows, pampered since birth, have ...

  3. android studio的Beta, Canary, Dev, Stable四种Channel版本介绍、分析与选择

    一.概述 在Android Studio下载官网上,有如下介绍: ` Android Studio's built-in update mechanism can be set to receive ...

  4. [转载]C++堆栈的入门学习

    申明:   转自    http://www.cnblogs.com/pengshao/archive/2011/12/26/2301461.html 头文件stackDemo.h #pragma o ...

  5. Vuforia判断当识别追踪的对象

    方法一,如果有多个识别对象,在Update中循环识别对象数组,获取TrackableBehaviour组件 foreach (var item in trackObjects) { var mTrac ...

  6. js 的match方法

    怎么调用? 字符串对象.match( 目标串 ); 返回值? 如果存在,就返回这个字符串: 否则, 返回null 实例 举一个常用的例子,判断图片路径是否包含某个字符串.

  7. 20145205 《Java程序设计》实验报告五:Java网络编程及安全

    20145205 <Java程序设计>实验报告五:Java网络编程及安全 实验要求 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.客户端中输入明文,利用DES算法加密,D ...

  8. 关于thinkphp开发的几种规范(仅限个人)

    一.只要设计到where查询语句,无论是增删改查 $cn['username'] = session('member.username'); $cn['itemid'] = $itemid; $ite ...

  9. pt-table-checksum和pt-heartbeat的使用

    一.pt-table-checksum 1.主从上均新建账户GRANT SELECT, PROCESS, SUPER, REPLICATION SLAVE ON *.* TO 'checksum'@' ...

  10. IBM 3090 with Vector Facility

    COMPUTER OR GANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION