什么是“分叉”项目的最佳方式,与维护者的变化保持联系并开发自己的功能,同时仍然能够轻松地回馈任何一旦被接受的功能?
这是我所做的,但遇到了问题。
我克隆了一个存储库,在 Feature1 分支中做了一些工作,然后合并了从 origin 到 feature1 的更改,然后是 origin... 然后我开发了 feature2,当然,它也包含 feature1 代码。下面的艺术描绘了这个场景(希望如此)。
我在我的主人中有所有上游的变化,并在它们之上发展。但是,我不能回馈 Feature2,因为它还包含 Feature1 代码。我能做些什么?如何获得针对“aaa”的 feature2 补丁?
Rebase Feature2 和cherry-pick 以排除 Feature1 提交?没有太大的解决办法。
git format-patch f2..f4
然后git am
呢?所有补丁都必须手动应用!
Feature1 Feature2
a---b---c---d---e---f---g-----h---i f2---f3---f4
/ \ \ \ /
--------x'---y'---z'----1---o'---p'---2---3---q'-----r'---t'---l'---aaa'
/ / / / / / / / / /
origin----x----y----z--------o----p-------------q------r----t----l---aaa