git 分支管理,git分支管理最佳实践
http://www.ruanyifeng.com/blog/2012/07/git.html
目前最流行的版本管理系统是Git。
与同类软件相比,Git有很多优势。很明显的一点就是版本的分支和合并非常方便。在一些传统的版本管理软件中,分支实际上生成了现有代码的物理副本,而Git只生成了一个指向当前版本的指针(也称为‘快照’),所以它非常快捷易用。
但是,太方便了,会有副作用。如果不注意,很可能会留下一个到处都是分支的版本库,根本看不到主干的发展。
文森特德里森提出的分店管理策略,我觉得很值得借鉴。可以保持版本库的演进简洁,主干清晰,各分支各司其职,井井有条。理论上,这些策略适用于所有版本管理系统,Git只是作为一个例子。如果你不熟悉Git,可以跳过例子部分。
一、主支行行长
首先,代码库应该有且只有一个主分支。所有提供给用户的官方版本都发布在这个主分支上。
Git主分支的名称,默认情况下称为Master。它是自动建立的。版本库初始化后,默认在主分支开发。
第二,发展部门的发展
主分支只用于分发主要版本,日常开发要在另一个分支上完成。我们称这个部门为发展部。
这个分支可以用来生成代码的最新隔夜版本。如果要正式对外发布,只需在Master分支上‘合并’Develop分支即可。
创建开发分支的Git命令:
git checkout -b开发大师
将开发分支发布到主分支的命令:
#切换到主分支
git结账大师
#合并开发分支
git合并-无-ff开发
这里稍微解释一下前面命令的-no-ff参数是什么意思。默认情况下,Git执行“快-远合并”,直接将主分支指向开发分支。
在使用-no-ff参数之后,将执行一个普通的合并,并在主分支上生成一个新的节点。为了保证版本演进的清晰性,我们希望采用这种方式。请参阅本杰明桑多弗斯基的《Understanding the Git Workflow》,了解关于合并的更多解释。
三。临时分支
前面,我们讨论了版本库的两个主要分支:主版本库和开发版本库。前者用于官方发布,后者用于日常开发。其实永久分支只需要这两项就够了,其他都不需要。
但是,除了永久分支之外,还有一些临时分支,用于处理一些特定用途的版本开发。临时分支机构主要有三种类型:
*功能(特征)分支
*预发布(发布)分支
*修复bug(fixbug)分支
这三个分支都是临时需要的,用完后要删除,这样代码库的永久分支永远都是只有掌握和发展。
四。功能分支
接下来,逐一查看这三个‘临时分支’。
首先是功能分支,就是开发一个特定的功能,是从开发分支分出来的。开发完成后,应该合并到develop中。
功能分支的名称可以以feature-*的形式命名。
创建一个功能分支:
git checkout -b特性-x开发
开发完成后,将功能分支合并到开发分支中:
git检验开发
git merge - no-ff特性-x
删除特征分支:
git分支-d特性-x
动词(verb的缩写)预发布分支
第二个是预发布分支,也就是说在正式版本发布之前(也就是并入主分支之前),我们可能需要有一个预发布版本进行测试。
预发布分支是从开发分支分出来的。预发布之后,它必须合并到开发和主分支中。它的名字可以采用release-*的形式。
创建预发布分支:
git checkout -b版本-1.2开发
确认没有问题后,并入主分支:
git结账大师
git merge - no-ff版本1.2
#为合并生成的新节点做一个标签。
git标签-a 1.2
合并到开发分支:
git检验开发
git merge - no-ff版本1.2
最后,删除预发布分支:
git分支-d版本-1.2
第六,修复bug分支
最后一个是修复bug分支。软件正式发布后,难免会有bug。这时候就需要创建一个分支来修复bug。
补丁分支来自主分支。补丁做好之后,合并到主,开发分支。它的命名可以采用fixbug-*的形式。
创建修补程序错误分支:
git checkout -b fixbug-0.1 master
修补后,合并到主分支:
git结账大师
git merge - no-ff fixbug-0.1
git标签-a 0.1.1
合并到开发分支:
git检验开发
git merge - no-ff fixbug-0.1
最后,删除“修复bug分支”:
git分支-d修复错误-0.1
(完)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。