【发布时间】:2020-11-19 03:34:01
【问题描述】:
我有两个主要分支:master 和 develop。
我通常的新功能工作流程是:
- 从开发创建一个新分支:
git checkout -b <myfeature> develop - 编码和测试功能
- 提交更改:
git commit -a -m "<message>" - 改回开发:
git checkout develop - 将该功能重新合并到开发中:
git merge --no-ff <myfeature> - 删除分支:
git branch -d <myfeature> - 将开发推送到远程:
git push origin develop
现在我需要开发一个需要当前功能的新功能。我的新工作流程是:
- 从开发创建一个新分支:
git checkout -b <myfeature> develop - 编码和测试功能
- 提交更改:
git commit -a -m "<message>" - QA 目前正在验证
- 从 myfeature 创建一个新分支:
git checkout -b <newfeature> <myfeature> - 开始编写新功能
- QA 完成验证,提交当前代码:
git commit -a -m "<message>" - 改回开发:
git checkout develop - 将该功能重新合并到开发中:
git merge --no-ff <myfeature> - 删除分支:
git branch -d <myfeature> - 将开发推送到远程:
git push origin develop - 改回新功能:
git checkout newfeature - 完成新功能的编码
- 提交更改:
git commit -a -m "<message>" - 改回开发:
git checkout develop - 将该功能重新合并到开发中:
git merge --no-ff <newfeature> - 删除分支:
git branch -d <newfeature> - 将开发推送到远程:
git push origin develop
这是一个正确的工作流程吗?在步骤 10 中删除分支是否有任何影响(即它是否孤立新功能?)?
原始指南来自Vincent Driessen's A successful Git branching model。我还阅读了Create a branch in Git from another branch,但它并没有真正删除产生新分支的分支。
【问题讨论】:
-
如果你不做拉取请求,你的功能分支有什么意义?
标签: git