分支 (版本控制)

✍ dations ◷ 2025-08-23 15:06:33 #版本控制系统,版本控制

在版本控制与软件配置管理中,分支(英语:Branching)是由某个版本的程式码或软件物件中建立复制版本,在分支出来后的两个版本,可以独立进行修改。

分支会形成树状结构,也被称为trees,streams或codelines。原始的版本,称为父分支(parent branch)或是上游分支(upstream branch)。分支出来的复本,称为子分支(Child branches)。作为最源头,没有父分支的分支,称为主干(trunk)或主线(mainline)。

在分散式版本控制系统(例如Darcs(英语:Darcs))中,分支和存放版本的仓库(repository)是一样的。在这类系统,复制一份仓库的复本和分支是一样的。

软件进行分支后,之后有可能会再将分支合并回父分支。常见的是将修改内容合并回主干(有可能主干不是父分支)。若某个分支不打算合并(例如曾由第三方授权,授权内容不相容,因此已重新授权(英语:relicensing),或是用在不同用途上),会称为分叉(fork)。

建立分支可以让各部分的程式码可以平行开发。大型专案会有不同的参与者,例如开发人员、build管理者,以及软件质量保证人员等。甚至需要维护针对不同操作系统的不同发行版。分支可以让参与者在不破坏基础代码稳定性的情形下,将修改和基础代码隔离,再进行程式错误修正、新机能(英语:Feature (software design))开发、软件版本整合等。这些修改可以在测试完成后,再合并回主线。

开发分支(development branch)或开发树(development tree)的程式码是指正在软件开发,但还没有正式发行的程式码。若在开放源代码社群中,“正式发行”不是那么直觉,因为任何人随时都可以取出(check out)需要的版本,不管是不是在开发分支中都可以取出。一般而言,最终会是下一个主要版本的分支就是开发分支。不过也常常同时开发多个机能,因此存在多个开发分支。

有些版本控制软件会针对主要的开发分支有特殊的命名,例如在CVS中称为MAIN,在Git中则称为master。

在cvc(英语:cvc system)(开源软件,整合rPath开发的版本控制系统)及CVSNT(英语:CVSNT)中,可以针对上游的分支建立阴影分支或魔术分支,在小修改的维护上比较方便。

在分散式版本控制中,可以复制整个仓库(以及其中的分支),之后再进行开发。Monotone(mtn)、Mercurial(hg)及Git称为clone。

相关

  • 世界能源消耗量世界能源消耗量是指所有人类文明所使用的能量总和。它通常以年度测定,并会计算人类文明所使用的所有能量来源,是审视可持续发展的重要数据,对人类的社会、经济、政治领域有很深
  • 欧亚非大陆亚非欧大陆、亚欧非大陆或欧亚非大陆指的是亚洲、欧洲、非洲三个大陆的合称。在地理上,直到苏伊士运河开通以前,三个大陆是相连的。在文化上,欧洲、亚洲和北非的关系比较接近,特
  • 潜水面镜潜水面镜(英语:Diving mask,又称:dive mask或scuba mask),通称潜水镜,是潜水装备(英语:Diving equipment)的一种,可以让水肺潜水员、自由潜水员及浮潜人士能够清楚地看到水底的东西。当
  • 马来亚战役日本决定性胜利英联邦军队撤往新加坡大英帝国大日本帝国马来亚战役是于1941年12月8日至1942年1月31日期间,同盟国与轴心国成员大日本帝国及泰国在英属马来亚上的战事。以日本
  • 奥巴马医改患者保护与平价医疗法案(英语:Patient Protection and Affordable Care Act,简称PPACA、ACA),又称为“奥巴马医改”(Obamacare),是2010年3月23日美国总统贝拉克·奥巴马签署的联邦法
  • 条顿堡森林战役条顿堡森林战役(Battle of the Teutoburg Forest),又译条陀堡森林战役、条陶堡森林战役。奥古斯都统治时期日耳曼人反对罗马占领军的一次战役。奥古斯都(屋大维)统治时期,罗马大举
  • 2008年美国职棒大联盟全明星赛< 2007年2009年 >2008年美国职棒大联盟全明星赛是大联盟历史上第79届全明星赛,比赛于2008年7月15日至16日在纽约洋基的主场洋基体育场举行。比赛从15日晚上8点47分开始,16日
  • 约翰内斯·戈特弗里德·哈利尔约翰内斯·戈特弗里德·哈利尔(Johannes Gottfried Hallier,1868年7月6日-1932年3月10日)为德国植物学家,耶拿人。他曾于耶拿大学就读植物学和动物学,从师于克里斯琴·恩斯特·斯
  • 马库斯·格赖纳马库斯·格赖纳(Markus Greiner),德国物理学家。他在特奥多尔·亨施指导下获慕尼黑大学物理学博士学位,后进入马克斯·普朗克研究所。2002年他与马普所的同事们做了验证玻色-爱
  • Tom's 硬件指南Tom's 硬件指南是一个资讯科技网站,在1996年由Dr. Thomas Pabst建立。它目前是世界性的IT焦点网站之一,目前分布于美国、欧洲及亚洲并在线上提供10种以上的语言供浏览。虽然Th