分支 (版本控制)

✍ dations ◷ 2025-09-14 03:48:14 #版本控制系统,版本控制

在版本控制与软件配置管理中,分支(英语: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。

相关

  • 罗培南美罗培南(英语:Meropenem),或译美洛培南,是一种有非常广泛抗菌性及可供注射的抗生素,用于治疗多种不同的感染,包括脑膜炎及肺炎。它是一种β内酰胺类抗生素,属于碳青霉烯的分类下。
  • 种加词种加词(英文:specific epithet),又称种小名,指双名法中物种名的第二部分,另一部分为属名。在植物学名命名法中,“种名”指的是物种的完整学名,而在动物学名命名法中,“种名”既可以指
  • 勹为汉字索引中的一个部首,康熙字典214个部首中的第二十个(两划的则为第十四个)。“勹”原意是指一个人怀抱东西的样子,所以这个部首里的字有些有包裹的意思。包装缠裹。今通作
  • 欧洲绿党欧洲绿党是一个欧洲政党。来自欧洲各国的32个绿党的1000位代表,在2004年20日到22日的集会中建立了欧洲绿党。不过在此以前已有政党合作与政党联盟的存在。欧洲绿党始终坚定支
  • 大韩海峡朝鲜海峡,是韩国和日本两国之间的海峡,连接黄海、东海和日本海之间的要道,有广义和狭义两种用法。广义的朝鲜海峡指位于朝鲜半岛和九州岛之间的整条水道。朝鲜民主主义人民共和
  • 自由思想对宗教的批评 · 自由思想 反教权主义 · 反宗教 虚构宗教自由思想是一种知识论观点,认为事实应当由逻辑、理智和经验来作为基础,而非因权威、传统、宗教教义或是启示而形成
  • 中日战争中日战争主要指近代中国和日本之间发生的两场大规模战争:此外,古代中国和古代日本之间还发生过以下的战争或军事冲突,但一般很少被称为“中日战争”:详见中日战争史。
  • 托马斯·霍洛派宁托马斯·劳里·约翰内斯·霍洛派宁(芬兰语:Tuomas Lauri Johannes Holopainen;1976年12月25日-),芬兰词曲作家、多种乐器演奏家、唱片制作人,他尤其以交响金属乐队夜愿的创始人、领
  • 克里穆尔达自治市克里穆尔达自治市(拉脱维亚语:Krimuldas novads),是拉脱维亚的一个自治市,设立于2009年,位于该国中北部。人口5803人,面积339.1平方公里,人口密度约17人/km2。
  • 里克·赫斯本德里克·道格拉斯·赫斯本德(英语:Rick Douglas Husband,1957年7月12日-2003年2月1日),原名理查德·道格拉斯·赫斯本德(Richard Douglas Husband),是美国空军上校、航天员。他曾参加发