我正在GitHub上开发一个OpenSource项目,我们已就一些规则达成一致(列出相关规则):
我所遇到的一个真实案例如下:
a
并在那里实现了它。a
到master
的拉取请求,但现在没有人可以审核它。我遇到的问题是我想要处理的另一个功能B.但是,功能B需要存在功能A更改。我该如何继续存储功能B的源代码?
我的想法是:
a
处创建标记,以标记A实现的结束。b
的分支a
并在那里进行进一步更改。b
分支master
并在其上结帐a
。我对Git不是很有经验,我认为上面所有我都不知道的问题,也许还有其他方法可以很好地管理它。对于我遇到的问题,最好的解决办法是什么?
注意:在完成实施B之前,a
很可能会合并为主。
答案 0 :(得分:1)
我想这个:
分支b来自a并在那里进行进一步的更改。
是合理的。你仍然可以自己合并一个。 之后,当将b合并到master(合并之后)时,应该没有不必要的冲突,如果你决定要b而不是a(或来自另一个分支的替代实现)你可以修复它“足够好” “通过改变。
答案 1 :(得分:1)
最自然的方法是从A
分支并从这里开始工作:
master
分支; A
已被修改,您可以在提交审核之前在新版A
上修改您的工作; A
被删除,您可以在新的B
准备就绪后,对A
所需的功能进行新的实施。1}}。答案 2 :(得分:0)
如果我忽略了你使用Git的事实,我会说这类似于Bazaar管道的含义。因此,鉴于相似性,我只需将另一个分支分支出特征A分支。
<强>更新强>
Bazaar管道基本上是捆绑在一起的分支。管道中的管道顺序很重要。关键在于能够将单个特征作为多个补丁并行处理主线,并且能够传播管线方向的变化。在您的情况下,管道将是主 - 特征-A - 特征-B。之后,即使管道(要素分支)本身包含许多更改集,您也可以将每个要素折叠为单个更改集。
它与你的情况不同,但它足够类似,特别是因为B依赖于A,我说从A分支实现B。