2011-07-17 40 views
6

我有许多基于类似代码库的不同封闭源代码项目,每一天我都需要将更改和修复从一个复制到另一个。如何使用git管理多个相似但不同的项目?

由于我的一些项目都是分歧太多,使用git子模块,而在其他我不希望我的客户与子模块混乱,因此偷看我在其他项目上工作,现在我做到这一点与git patchgit apply这是一个单调乏味的工作。

我要考虑本地资源库之间进行切换,以git pullgit push我的机器上使用。因此,并git cherry-pickgit merge回暖需要改变,但如果有更好的办法?

+1

您的项目是否共用通用代码?如果是这样,您可以拥有三个存储库:core,projectA和projectB。 'core'中发生的变化和修复被拉到projectA和projectB。项目存储库中发生的任一项目的唯一更改 – knittl

+0

您能否解释为什么不能使用子模块? – celavek

+0

@ knittl无法做到这一点,因为我需要控制哪些更改会在哪里收费 – sanmai

回答

1

使用git cherry-pick可能做你想做的。通过将另一个存储库作为远程可以从中获取,您仍然可以选择单个提交。您不必创建远程分支,只需获取更改并挑选您想要移植的提交的sha1即可。当你推送时,它不应该推送其他提取的引用,因为它们不在你当前的分支上,只是樱桃选择的提交。

相关问题