GIT分支特定文件?

GIT分支特定文件?,git,version-control,Git,Version Control,我想知道是否可以说拥有一个包含我所需的一切、配置、应用程序代码等的主repo(这是一个MVC环境),并从一个只包含特定模型、控制器和视图的主GIT repo创建分支 因此,我将与 applications/* assets/* system/* 我会有一个和你在一起的分支 applications/controllers/controller_name.php applications/model/model_name.php applications/views/view_name.php

我想知道是否可以说拥有一个包含我所需的一切、配置、应用程序代码等的主repo(这是一个MVC环境),并从一个只包含特定模型、控制器和视图的主GIT repo创建分支

因此,我将与

applications/*
assets/*
system/*
我会有一个和你在一起的分支

applications/controllers/controller_name.php
applications/model/model_name.php
applications/views/view_name.php
assets/modules/controller_name/*
然后,我可以为每个新的“MVC设置”将该分支合并到主回购中


这有意义吗?这可以做到吗?

Git不是基于每个文件进行分支,而是基于存储库进行分支

也就是说,仅仅因为您使用整个repo创建了一个分支,并不意味着您必须在每个分支中拥有所有相同的文件。

Git跟踪代码库的快照(另请参见)。因此,无论您希望有什么不同于主分支,都可以在单独的分支中进行跟踪。如果这意味着您将在另一个分支中拥有新文件,您可以这样做。如果这意味着你将有相同的文件,修改,你可以这样做

我不确定“对于每个新的MVC设置”是什么意思,但似乎您的想法很复杂。在我看来,你希望有一个“共同的基础”,然后在这个共同的基础上有“特定的设置”。您可以通过拥有一个带有basis的主分支,并跟踪各个设置分支中特定于设置的更改/添加/任何内容来实现这一点

后一种方法通常用于实践中的“产品变体”。您通常会在主分支上开发通用功能,并将其合并到您想要的每个分支中,或者您会在“主分支之上”重新设置各个分支的基础


您甚至可以从一个特定于安装程序的分支到另一个分支进行各种各样的提交。

我在自己的存储库中有几个Magento模块。所有文件路径都类似(例如,
/app/code/community/MyNamespace/[module name]/
/app/etc/modules/[module config].xml
)。有了Git,我可以轻松地将它们合并到任何Magento项目中。只要文件名不冲突,就不会有问题。Git跟踪快照,而不是更改。