我有一个完整的项目 - 我们称之为Foo。它托管在我自己的Gogs服务器上。使用Git维护多个类似项目的最佳策略?
现在,我有一个请求来创建项目的衍生物,我们将其称为Bar。 Foo和Bar项目将共享其大部分代码库。
但是,Foo和Bar项目的资产必须与每个项目不同。 (像图片,CSS文件等)
我知道我可以复制我的Foo repo并在我的Gogs服务器上创建一个Bar存储库,然后将Foo repo作为第二个远程添加到酒吧项目。但是,我不清楚的是保持某些文件分离的最佳策略,同时允许共享其他文件的更改。
示例:如果我修复了“backend.js”,我希望能够将这一更改应用于这两个存储库。但是,如果我更改“assets/logo.jpg”,我希望该更改仅适用于进行更改的回购。
因此,假设我在Bar上做了两个提交:一个更改了徽标,另一个更改了徽标修复backend.js中的错误。除了樱桃采摘文件和手动来回移动文件之外,还有更好的方法来设置它,以便将backend.js文件的更改推送到Foo原点,但徽标的更改将不会更改为被推?
使用你的语言的包管理器,并将可重用组件分成多个包并在两个包中使用它们? –
虽然我无法为您的问题提供一个很好的答案,但您可能需要查看“git submodules”和“git subtree” – lucanLepus
根据我的经验,分支是用于特征的。存储库用于项目。项目可以包括,通过包管理器(私人npm注册表)共同的共享库,或者如果你坚持git,使用git子模块。 (或者甚至复制粘贴的样板文件。)拥有白标签项目的想法似乎很诱人,并且您“只需要几次更改”即可启动一个新项目。这很少,如果从来没有的话,将解决。这里没有最好的策略。 – k0pernikus