在Git中管理项目变体的最佳实践?

int*_*tar 9 git django

我必须开发两个共享90%相同代码的Django项目,但在几个应用程序,模板和模型本身中有一些变化.

我正在使用Git进行分布式源代码控制.

我的要求是:

  • 这两个项目的通用代码都是在一个地方开发的(Project1的开发环境)

  • 定期将其合并到第二个项目的开发环境中(Project2)

  • 变体不容易封装在应用程序中.(例如,有些应用程序.例如"个人资料",它们在Project1和Project2之间有所不同,但也有一个持续的共同演变)

  • Project1和Project2都有公共存储库,因此我可以与其他人协作

  • 类似地,Project1和Project2应该具有开发,演示,登台和生产服务器.

  • 但是,在这两种情况下,公共存储库都不在同一台服务器上.因此,例如,当我在Project1中开发时,我希望能够"推送"到我的github服务器,但没有Project2的东西去那里.

  • 有一些文件,例如local_settings.py,它们在Project1和Project2之间完全不同,但应该在每个项目的多个开发人员之间共享

那么管理这种情况的最佳方法是什么?

什么似乎是理想的将是像"过滤拉",而不是.gitignore说"完全忽略这个文件",我可以说"从该回购中拉出时忽略此文件"我看不到任何类似的东西在文档中,但可能有这样的东西?

Mac*_*rse 0

我将创建第三个存储库,在其中放置项目共享的代码。然后 Project1 和 Project2 将拥有自己的存储库,并且可以从“共享”的第三个存储库中提取数据。

我认为你的“过滤拉动”的想法会让管理变得困难。