实际应用
- 如果给公共分支上上传了一个错误的提交,怎么办
- 已推送且被他人拉取 → 用
git revert(安全)。
- 未推送或团队可协调 → 用
git reset(需同步)。
- 已推送且被他人拉取 → 用
实例
https://zhuanlan.zhihu.com/p/23478654?utm_id=0
各个分支的功能
child::
分支规范
规范之一(国内用的多)
各分支介绍
- master分支,即主分支。任何项目都必须有个这个分支。对项目进行tag或发布版本等操作,都必须在该分支上进行。
- release分支
- 泛指多个分支
- 每个分支都是有很多feat分支都会合进来的一个杂糅分支
- oa测试环境
- pre预发布
- 与pro环境一致
- pro生产
- feature分支,即功能分支,从master分支上检出。每一个大功能可以作为一个feature分支,开发完毕后可酌情删除
- fix分支,即补丁分支,由master分支检出,用作bug修复,bug修复完成需merge回master分支,并将其删除。所以该分支属于临时性分支。
分支流向
开发:
- master分支检出feature分支
- 一个功能一个分支
- feature分支开发过程中,可以合并到oa分支
- 但未开完毕,有bug的时候,记得revert 合并commit
- 避免影响他人测试
- 开发完毕,合并到pre分支,或更进一步,合并到pro分支
- 正式上线时,合并到master中
- 推荐使用git rebase,保持master的线性
- 当前版本迭代完成后删除该功能分支
修复bug
- 与开发类似
- 区别是:上线后及时删除分支
规范之一
- master分支,即主分支。任何项目都必须有个这个分支。对项目进行tag或发布版本等操作,都必须在该分支上进行。
- develop分支,即开发分支,从master分支上检出。团队成员一般不会直接更改该分支,而是分别从该分支检出自己的feature分支,开发完成后将feature分支上的改动merge回develop分支。
- 同时release分支由develop分支检出。release分支,即发布分支,从develop分支上检出。该分支用作发版前的测试,可进行简单的bug修复。如果bug修复比较复杂,可merge回develop分支后由其他分支进行bug修复。此分支测试完成后,需要同时merge到master和develop分支上。
- feature分支,即功能分支,从develop分支上检出。团队成员中每个人都维护一个自己的feature分支,并进行开发工作,开发完成后将此分支merge回develop分支。此分支一般用来开发新功能或进行项目维护等。
- fix分支,即补丁分支,由develop分支检出,用作bug修复,bug修复完成需merge回develop分支,并将其删除。所以该分支属于临时性分支。hotfix分支,即热补丁分支。和fix分支的区别在于,该分支由master分支检出,进行线上版本的bug修复,修复完成后merge回master分支,并merge到develop分支上,merge完成后也可以将其删除,也属于临时性分支。
相关链接
指向原始笔记的链接