git的branch以及merge

来源:互联网 发布:关于农村淘宝面试问题 编辑:程序博客网 时间:2024/04/30 02:52

用惯了svn,对于git的merge和branch始终不太会用,srs在github上后开始用git,用了一年多才慢慢搞清楚一点点东西。

git的merge很靠谱,不用每次都手工merge,必须使用branch的merge,否则会很慢。

不过merge需要搞清楚那些branch,以及merge,还有commit之类,需要花些时间。

一般的惯例是master+release+develop,或者加其他的branch,srs没有那么大,就把master和develop合并了。

也就是srs的branch只有develop(master)和release。

就算只有develop+release,也有merge,release上因为只fix bug,所以改动会小,如果有bug修改可以merge到develop。标准的操作是从release打hotfix的branch,然后fix后merge到release和develop,或者直接从release merge到develop也可以。

有时候有临时的feature,悬而未决的,可以新开branch。但是这些branch都必须和develop保持merge。等完全确定后再merge回develop。


这个图中,srs-librtmp有一些修改,然后从master merge。

1.0release上有bug fix,还未有merge到master,接下来就是master merge 1.0release的bug fix。

在master分支上,使用git merge --no-ff 1.0release之后的图如下:


也就是说:

1. 1.release => master

2. master => srs-librtmp

等srs-librtmp分支有结果了:

3. srs-librtmp => master

这种是衍生式的分布式开发,都是不断分支和合并往前走。

git还有其他的很多用法,确实很灵活,譬如加入多个remote可以推送到不同的git服务器。

值得好好学学,门槛确实比svn高很多,这篇文章写得很好,值得好好读读:http://www.open-open.com/lib/view/open1328070090108.html

0 0