赞
踩
原文连接:http://blog.sina.com.cn/s/blog_ad0672d60102wwzf.html
.master 分支
.develop 分支
.Feature 分支
.Release 分支
.Hotfix 分支
中央仓库 origin 任何一个机器都可以, 它是逻辑上一个中央单元. 理论上可以随时切换, 一般固定为一台机器.
集中式的版本库有两个永久存在的主分支:
master 分支
develop 分支
master 分支上存放的应该是随时可供在生产环境中部署的代码(Production Ready state).
当开发活动告一段落, 产生了一份新的可供部署的代码时, master 分支上的代码会被更新. 同时, 每一次更新, 都有对应的版本号标签(TAG)
初始化 master:
$ mkdir your_project_name
$ cd your_project_name
$ git init
初始化后在本地代码库会自动创建一个.git隐藏文件, 这个就是本地代码库.详见 c 步骤
默认的名称就是 master
develop 分支是保存当前最新开发成果的分支.
通常这个分支上的代码也是可进行每日夜间发布的代码(Nightly build). 因此这个分支有时也可以被称作“integration branch”.
创建 develop 分支:
$ git branch develop
$ ssh user@host
$ git init --bare /path/to/repo.git
确保写上有效的user(SSH的用户名), host(服务器的域名或IP地址), /path/to/repo.git(你想存放仓库的位置).
注意, 为了表示是一个裸仓库, 按照约定加上.git扩展名到仓库名上.
$ git clone ssh://user@host/path/to/repo.git
$ git push origin master
$ git push origin develop
$ git pull --rebase origin master
$ git status
完成编辑修改这些文件后, 用老套路暂存这些文件, 并让 git rebase 完成剩下的事:
$ git add
$ git rebase --continue
重新解决冲突(重头再来, 回到解决冲突之前):
$ git rebase --abort
$ git checkout master
切换到 master
$ git checkout develop
切换到 develop
$ git commit -m “add distributed”
[master ea34578] add distributed
1 file changed, 1 insertion(+), 1 deletion(-)
参数 m 后面是注释
助性的分支, 以帮助团队成员间的并行开发, 特性的简单跟踪, 产品的发布准备事宜, 以及快速的解决线上问题.
这些辅助性分支往往只要有限的生命周期, 因为他们最终会被删除.
辅助性分支包括:
.Feature 分支
.Release 分支
.Hotfix 分支
辅助性分支一般位于非中央仓库 origin 机器上.
feature 分支(有时也可以被叫做“topic分支”)通常是在开发一项新的软件功能的时候使用, 这个分支上的代码变更最终合并回 develop 分支或者干脆被抛弃掉(例如实验性且效果不好的代码变更)
Feature 分支从 develop 分支拉取, 最后合并于 develop 分支. 是 Release 分支的基础, 生命周期早于 Release 分支.
Feature 分支命名惯例: feature-*
创建 Feature 分支:
$ git checkout -b myfeature develop
Switched to a new branch “myfeature”
Feature 分支合并到 develop 分支:
$ git checkout develop
Switched to branch ‘develop’
$ git merge --no-ff myfeature
Updating ea1b82a…05e9557
(Summary of changes)
删除 Feature 分支:
$ git branch -d myfeature
Deleted branch myfeature (was 05e9557).
release 分支是为发布新的产品版本而设计的.
在这个分支上的代码允许做小的缺陷修正、准备发布版本所需的各项说明信息(版本号、发布时间、编译时间等等)
Release 分支从 develop 分支拉取, 最后合并于 develop 分支和 master 分支. 在 Feature 分支之后操作, 生命周期晚于 Feature 分支.
一个 Release 分支创建的时候, develop 分支已经合并了一个或多个 Feature 分支功能.
Release 分支命名惯例: release-*
创建 release 分支:
$ git checkout -b release-1.2 develop
Switched to a new branch “release-1.2”
$ ./bump-version.sh 1.2
Files modified successfully, version bumped to 1.2.
合并 release 分支到 master:
$ git checkout master
Switched to branch ‘master’
$ git merge --no-ff release-1.2
Merge made by recursive.
(Summary of changes)
$ git tag -a 1.2
合并 release 分支到 develop:
$ git checkout develop
Switched to branch ‘develop’
$ git merge --no-ff release-1.2
Merge made by recursive.
(Summary of changes)
删除 release 分支:
$ git branch -d release-1.2
Deleted branch release-1.2 (was ff452fe).
Feature 分支从 master 分支拉取, 最后合并于 develop 分支和 master 分支. 与 Feature 分支和 Release 分支无关系.
Feature 分支是用于快速修复生产环境的 bug 而产生的.
Hotfix 分支命名惯例: hotfix-*
创建 hotfix 分支:
$ git checkout -b hotfix-1.2.1 master
Switched to a new branch “hotfix-1.2.1”
$ ./bump-version.sh 1.2.1
Files modified successfully, version bumped to 1.2.1.
合并 hotfix 分支到 master :
$ git checkout master
Switched to branch ‘master’
$ git merge --no-ff hotfix-1.2.1
Merge made by recursive.
(Summary of changes)
$ git tag -a 1.2.1
合并 hotfix 分支到 develop :
$ git checkout develop
Switched to branch ‘develop’
$ git merge --no-ff hotfix-1.2.1
Merge made by recursive.
(Summary of changes)
删除 hotfix 分支:
$ git branch -d hotfix-1.2.1
Deleted branch hotfix-1.2.1 (was abbe5d6).
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。