git flow
sanlanlan 2021-2-9 标签: git 浏览:1897 评论:0
简介
Gitflow是git的一种规范模型。不同的分支分配一个很明确的角色,并定义了分支之间如何进行交互。
Git flow 提供了极出色的命令帮忙以及输出提示。
Sourcetree 是一个极出色的 git 界面客户端,已经提供了 git-flow 的支持。
gitflow 原理图
Gitflow 分支
develop:
这个分支是我们是的主开发分支,包含所有要发布到下一个Release的代码,master 要发布都是 merge 这个分支。在开发过程中主要合并与其他分支,如Feature分支。
// create develop or checkout develop
git branch develop
git push -u origin develop
//如果已存在,本地直接checkout 就好
git clone ssh://user@host/path/xxx.git
git checkout -b develop origin/develop
master:
发布分支,这个分支一般不会做开发使用。
开发项目过程中使用的分支:
Feature branches
Release branches
Hotfix branches
(a) Feature branches
每个功能对应自己的一个分支。命名规范:feature /* or feature-*
功能开发不是从master分支上拉出新分支,而是在develop分支拉出来。当新功能完成时,合并回develop分支。新功能提交不应该直接与master分支交互。
// git 操作
git checkout -b yourfeature develop
git status
git add . //git add --all
git commit -a -m 'messige'
git checkout develop
git pull origin develop
git merge your-feature -m 'messige' (or git merge --no-ff your-feature)
git push origin develop (or git push)
git branch -d your-feature
(b) Release branches
发布分支,命名规范为:release-* or release/*
当你需要一个发布一个新Release的时候,在develop分支创建一个Release分支,完成Release后,我们合并到Master和Develop分支.
//git 操作
git checkout -b release-0.1 develop
git checkout master
git merge release-0.1 -m 'messige' (or git merge --no-ff release-0.1 )
git push
git checkout develop
git merge release-0.1 -m 'messige' (or git merge --no-ff release-0.1.0 )
git push
git branch -d release-0.1
//如果需要打标签
git tag -a 0.1 -m "Initial public release" master
git push --tags
(c) Hotfix branches
bug 分支,一般用于线上或者紧急bug 修改 才会使用这个分支。注意:它的分支是从master 拉出来的。命名规范:hotfix-*或hotfix/*
//git 操作
git checkout -b hotfix-0.1.1 master
git checkout master
git merge --no-ff hotfix-0.1.1 -m 'messige' (or git merge -m 'messige')
git push
git checkout develop
git merge --no-ff hotfix-0.1.1 -m 'messige' (or git merge -m 'messige')
git push
git branch -d hotfix-0.1.1
//tag
git tag -a v0.1.1 master
git push --tags
以上是git flow 的简单运用,具体可以参照:
原出处:http://nvie.com/posts/a-successful-git-branching-model/
发表评论: