git典型分支

原文连接:http://blog.sina.com.cn/s/blog_ad0672d60102wwzf.html

1.git 典型分支包括

.master 分支
.develop 分支
.Feature 分支
.Release 分支
.Hotfix 分支

2.中央仓库 origin

中央仓库 origin 任何一个机器都可以, 它是逻辑上一个中央单元. 理论上可以随时切换, 一般固定为一台机器.
集中式的版本库有两个永久存在的主分支:
master 分支
develop 分支

a.master

master 分支上存放的应该是随时可供在生产环境中部署的代码(Production Ready state).
当开发活动告一段落, 产生了一份新的可供部署的代码时, master 分支上的代码会被更新. 同时, 每一次更新, 都有对应的版本号标签(TAG)

初始化 master:
$ mkdir your_project_name
$ cd your_project_name
$ git init

初始化后在本地代码库会自动创建一个.git隐藏文件, 这个就是本地代码库.详见 c 步骤
默认的名称就是 master

b.develop

develop 分支是保存当前最新开发成果的分支.
通常这个分支上的代码也是可进行每日夜间发布的代码(Nightly build). 因此这个分支有时也可以被称作“integration branch”.

创建 develop 分支:
$ git branch develop

c.生成 .git 链接

$ ssh user@host
$ git init --bare /path/to/repo.git

确保写上有效的user(SSH的用户名), host(服务器的域名或IP地址), /path/to/repo.git(你想存放仓库的位置).
注意, 为了表示是一个裸仓库, 按照约定加上.git扩展名到仓库名上.

3.本地仓库和中央仓库 origin 交互

a.clone 中央仓库 origin:

$ git clone ssh://user@host/path/to/repo.git

b.更新到中央仓库 origin 的 master:

$ git push origin master

c.更新到中央仓库 origin 的 develop:

$ git push origin develop

d.解决冲突

$ git pull --rebase origin master
$ git status

Unmerged paths:

(use “git reset HEAD …” to unstage)

(use “git add/rm …” as appropriate to mark resolution)

both modified:

完成编辑修改这些文件后, 用老套路暂存这些文件, 并让 git rebase 完成剩下的事:
$ git add
$ git rebase --continue

重新解决冲突(重头再来, 回到解决冲突之前):
$ git rebase --abort

e.切换分支

$ git checkout master
切换到 master

$ git checkout develop
切换到 develop

f.提交更改

$ git commit -m “add distributed”
[master ea34578] add distributed
1 file changed, 1 insertion(+), 1 deletion(-)

参数 m 后面是注释

4.辅助性分支

助性的分支, 以帮助团队成员间的并行开发, 特性的简单跟踪, 产品的发布准备事宜, 以及快速的解决线上问题.
这些辅助性分支往往只要有限的生命周期, 因为他们最终会被删除.
辅助性分支包括:
.Feature 分支
.Release 分支
.Hotfix 分支
辅助性分支一般位于非中央仓库 origin 机器上.

a.Feature 分支

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).

b.Release 分支

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).

c.Hotfix 分支

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).

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值