我正在 GitHub 上开发一个开源项目,我们已就一些规则达成一致(列出相关规则):
- merge 到 master 将通过 Pull 请求完成。
- 每次 merge 到 master 都必须至少由两个人“接触”。
- 每个新功能都将在适当命名的分支上实现。
我遇到过的一个真实案例如下:
- 出现了对功能 A 的需求。
- 我创建了一个分支
a
并在那里实现了它。 - 我已向
a
分支向master
提出 pull 请求,但目前无人审核。
我遇到的问题是我还想开发另一个功能 B。但是,功能 B 需要存在功能 A 更改。我应该如何继续存储功能 B 的源代码?
我的想法是:
- 在分支
a
处创建一个标记,标记 A 实现的结束。 - 从
a
分支b
并在其中进行进一步更改。 - 直接从
master
分支b
并在其上 checkouta
。
我对 Git 的经验不是很丰富,我认为上述所有问题都可能存在我没有意识到的问题,也许还有其他方法可以合理地管理它。对于我遇到的问题,最好的解决方案是什么?
注意:在我完成 B 的实现之前,a
很有可能会 merge 到 master 中。
最佳答案
我认为:
Branch b from a and make further changes there.
有道理。您仍然可以单独 merge a 。 稍后,当将 b merge 到 master 时( merge a 后),应该不会出现不必要的冲突,并且如果您决定需要 b 而不是 a(或来自另一个分支的 a 的替代实现),您可以修复它“足够好” “通过 rebase 。
关于git - 当我的新功能依赖于之前的更改时,我应该从分支分支还是创建标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17753373/