Gitflow工作方式
一. 分支简介
master :随时可以发表的代码
master上的提交要打tag标记
要确保master上的代码一直可用,不能在master上直接修改和开发。
develop :功能最新最全
feature :个人开发分支
从develop上拉取,合并到develop上
release :发布前检测与准备
从develop上拉取,合并到master和develop上
hotfix :修复线上bug
从master上拉取,合并到master和develop上
二. 图解分支
1. 历史分支 master & develop
最基本最简单的分支,只包括了master和develop
2. 功能分支 feature
要对历史版本新开发一些功能,就需要从develop上拉取一个feature分支
3. 发布分支 release
在发布之前做最后的测试功能和兼容性,于是从develop上拉取一个release分支进行发布前的准备;将release上的修改提交到master和develop上
4. 维护分支 hotfix
当遇到线上的bug时,从master上拉取一个hotfix,在hotfix上修复的代码最后提交到master和develop上
三. 常用命令
1. 创建自己的分支
git checkout -b angela-feature develop
// -b表示:如果分支不存在,则新建
2. 在自己的分支上修改并提交
git status
git add hellotest.cpp
git commit -m "I'm testing"
3. 推送自己分支的修改
git push -u origin angela-feature
// 指定angela-feature分支推送到远程仓库origin里
// -u表示:建立本地分支和远程对应分支的关联
// 关联后,只需用 git push 即可
4. 合并angela到develop
git pull origin develop
// 确保develop分支是最新的
git checkout develop
git merge angela-feature
git push
git branch -d angela-feature
// 可选,是否删除该分支
5. 准备发布
git checkout -b release-0.1 develop
6. 准备发布完毕
// 合并到master
git checkout master
git merge release-0.1
git push
// 合并到develop
git checkout develop
git merge release-0.1
git push
// 删除release
git branch -d release-0.1
7. 打标签发布
git tag -a 0.1 -m "initial all" master
git push --tags
8. 解决线上bug
git checkout -b hotfix-#001 master
9. 线上bug解决完毕
// 合并到master
git checkout master
git merge hotfix-#001
git push
// 合并到develop
git checkout develop
git merge hotfix-#001
git push
// 删除hotfix
git branch -d hotfix-#001