Git 工作流程

一般工作流程如下:

  • 克隆 Git 资源作为工作目录。

  • 在克隆的资源上添加或修改文件。

  • 如果其他人修改了,你可以更新资源。

  • 在提交前查看修改。

  • 提交修改。

  • 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。



一 主分支master
代码库应该有且只有一个主分支
所有提供给用户使用的正式版本 都在这个主分支上发布

Git主分支的名字 默认 Master
自动建立的 版本库初始化以后 默认就是在主分支在进行开发


二  开发分支Develop
主分支只用来分布重大版本 日常开发应该在另一条分支上完成
把开发用的分支 叫做Develop

这个分支可以用来生成代码的最新隔夜版本(nightly)
想正式对外发布 就在Master分支上 对Develop分支进行"合并"(merge)

#Git创建Develop分支的命令
git checkout -b develop master
#将Develop分支发布到Master分支的命令
git checkout master
git merge --no-ff develop


--no-ff参数
默认情况下 Git执行"快进式合并" 会直接将Master分支指向Develop分支


三 临时性分支
前面讲到版本库的两条主要分支
Master和Develop
前者用于正式发布 后者用于日常开发
其实 常设分支只需要这两条就够了 不需要其他了
除了常设分支以外 还有一些临时性分支 用于应对一些特定目的的版本开发
临时性分支主要有三种:
* 功能分支 (feature)
* 预发布分支 (release)
* 修补bug分支 (fixbug)

这三种分支都属于临时性需要
使用完以后 应该删除
使得代码库的常设分支始终只有Master和Develop


四 功能分支 feature branches
为了开发某种特定功能 从Develop分支上面分出来的
开发完成后 要再并入Develop
功能分支的名字 可以采用feature-*的形式命名
#创建一个功能分支
git checkout -b feature-x develop
#合并到develop分支
git checkout develop
git merge --no--ff feature-x
#删除feature分支
git branch -d feature-x

五 预发布分支 release branches
指发布正式版本之前(即合并到Master分支之前)
可能需要有一个预发布的版本进行测试

预发布分支是从Develop分支上面分出来的
预发布结束以后 必须合并进Develop和Master分支
它的命名 可以采用release-*的形式
#创建一个预发布分支:
git checkout -b release-x develop
#确认没有问题后,合并到master分支:
git checkout master
git merge --no-ff release-x
# 对合并生成的新节点,做一个标签
git tag -a x
#再合并到develop分支:
git checkout develop
git merge --no-ff release-x

#最后记得删除预发布分支:
git branch -d release-x
六 修补bug分支 hotfixes
软件正式发布以后 难免会出现bug
这时就需要创建一个分支 进行bug修补

修补bug分支是从Master分支上面分出来的
修补结束以后 再合并进Master和Develop分支
它的命名 可以采用fixbug-*的形式
#创建一个修补bug分支:
git checkout -b fixbug-xx master
#修补结束后,合并到master分支:
git checkout master
git merge --no-ff fixbug-xx
git tag -a xx

#再合并到develop分支:
git checkout develop
git merge --no--ff fixbug-xx