GitFlow工作流使用总结

本文详细介绍了GitFlow工作流的具体步骤,包括如何开发新功能、修复bug、发布版本等,并强调了不同Git规范间的兼容性问题。

1、开发新功能从dev拉feature;
2、完成功能合并feature到dev,然后拉出release分支;
3、release分支发布测试环境;
4、在release上修复bug;
5、完成release,代码合并到dev、master;
6、在预生产发布master;
7、预生产的Bug,从master拉出hotifx解决;
8、解决完bug,合并hotfix到dev、master;
9、在发布生产在master;
10、生产的Bug,从master拉出hotifx解决;
11、解决完bug,合并hotfix到dev、master;
12、在master上打tag,Tag名称是版本号,信息是这个版本做的内容。打完Tag,确认下有推送成功,版本就结束啦。

另:线上问题的处理,同10、11点。

hotfix,是在最新的版本上标注,有时候bug可能是之前的版本遗留的,但是在当前版本也会有,所以还是以最新版本来标注,如1.0的bug,到了最新的1.4版本才发现,1.4也合到master,那么hotfix应该是1.4.h1,而不是1.0.h1

-----

Update 2017年12月18日

GitFlow是可以跨团队的,大家都是用gitflow的流程来版本控制;

不同Git规范是不兼容的,比如我用GitFlow,而你用基于主干或者开发分支的开发,那么就会有冲突。

### Git Flow 工作流与 Forking 工作流的区别及使用场景详解 #### 分支模型与协作方式 Git Flow 工作流基于严格的分支模型,主要包含两种长期分支:`master` 和 `develop`,以及多种临时分支,例如 `feature`、`release` 和 `hotfix`。`master` 分支用于存放生产环境的稳定版本,而 `develop` 分支用于集成各个功能开发的进展。所有新功能开发都基于 `develop` 创建 `feature` 分支,完成后再合并回 `develop`。当准备发布时,从 `develop` 创建 `release` 分支,用于测试和修复问题,最终合并到 `master` 和 `develop`。对于紧急修复,使用 `hotfix` 分支直接从 `master` 创建并最终合并回 `master` 和 `develop` [^1]。 Forking 工作流则更强调分布式协作和代码审核。每个开发者拥有自己的远程仓库副本(Fork),在本地完成开发后,将更改推送到自己的 Fork,然后通过 Pull Request 提交合并请求。这种方式允许项目维护者对代码进行审核,并决定是否接受贡献。这种工作流适用于开放源代码项目或需要外部贡献者参与的场景 [^1]。 #### 使用场景 Git Flow 工作流适合中大型团队,尤其是那些需要明确版本管理与发布流程的项目。它通过规范化的分支管理,确保了代码质量和发布稳定性。例如,企业内部的持续交付项目可以采用 Git Flow 来管理不同阶段的开发与测试 [^1]。 Forking 工作流则更适合开源项目或需要接受外部贡献的场景。由于每个开发者都有独立的仓库副本,这种方式降低了对主仓库的直接修改风险,提高了代码审核的灵活性。例如,在 GitHub 上,许多开源项目采用 Forking 工作流来管理社区贡献 [^1]。 #### 优缺点比较 Git Flow 工作流的优点在于其结构清晰,适合复杂项目的版本管理。然而,它的复杂性也可能成为缺点,尤其是对于小型团队或简单项目,可能会增加不必要的管理负担 [^1]。 Forking 工作流的优点在于其灵活性和安全性,能够有效管理外部贡献。然而,这也可能导致协作效率降低,因为需要额外的 Pull Request 和审核步骤 [^1]。 #### 示例代码 以下是一个简单的 Git Flow 工作流操作示例: ```bash # 创建一个新的 feature 分支 git checkout -b feature/new-feature develop # 在完成开发后,合并回 develop git checkout develop git merge --no-ff feature/new-feature # 创建 release 分支进行测试 git checkout -b release/1.0.0 develop # 测试完成后,合并到 master 和 develop git checkout master git merge --no-ff release/1.0.0 git checkout develop git merge --no-ff release/1.0.0 # 创建 hotfix 分支进行紧急修复 git checkout -b hotfix/1.0.1 master # 修复完成后,合并到 master 和 develop git checkout master git merge --no-ff hotfix/1.0.1 git checkout develop git merge --no-ff hotfix/1.0.1 ``` 对于 Forking 工作流,开发者首先 Fork 主仓库,然后克隆自己的 Fork 进行开发: ```bash # 克隆自己的 Fork git clone https://github.com/your-username/project.git # 添加主仓库为远程 git remote add upstream https://github.com/original-owner/project.git # 拉取主仓库的最新代码 git fetch upstream # 创建 feature 分支并进行开发 git checkout -b feature/new-feature # 推送更改到自己的 Fork git push origin feature/new-feature ``` #### 总结 Git Flow 工作流和 Forking 工作流各有优劣,选择合适的工作流取决于项目的规模、团队的协作方式以及对代码审核的需求。Git Flow 适合需要严格版本管理的团队,而 Forking 工作流则更适合需要接受外部贡献的开源项目 [^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值