Multi Git Repo有相同的文件

时间:2014-08-19 00:41:08

标签: git

首先,我的大脑很有可能只是油炸而且我没有想清楚......我甚至不确定如何正确解释这个:(

My Repo Setup

我有两个存储库,Framework和Client1。

第一个包含所有文件,包括一些将在客户端仓库中修改的文件。这些只是占位符或示例文件。

第二个存储库Client1包含不属于Framework的添加文件,以及从Framework存储库修改一些文件。

Client1 repo通过拉入Framework repo开始,然后我添加/编辑文件以适应客户端网站。更改Framework repo文件后,我将它们合并到Client1 repo。

这最终会导致冲突。可能会有很多冲突。

我可以在一个命令中git pull并仅接受我的文件中的冲突吗?只是为了让事情更快。

或者无论如何要做得更好吗?

编辑:我们更改了框架,因此客户端无法触及核心文件。如果需要覆盖框架文件,他们会将文件放在另一个文件夹中。

例如: 客户端需要修改位于/framework/application/controller/contact/index.php的联系人页面控制器。 客户端在/application/controller/contact/index.php中创建一个文件以覆盖框架中的文件。

我们也开始使用Git-Flow。

1 个答案:

答案 0 :(得分:1)

根据您所说的内容,您的框架仓库本质上是一个模板,您可以将其放入您积极用于开发的dev repo中。您遇到的问题是当您对框架进行更改时,并且您希望将这些更改应用于您已经构建的活动开发环境(Client1),甚至可能修改之前提取的框架。

我无法告诉你一个确保没有冲突的具体命令,但我想传达一些关于如何做得更好的知识。

首先,我认为这个框架应该或多或少保持不变,你不应该在技术上经常在你的客户端修改它,据说,我认为你可能正在重新发明轮子一些地区。事实上,框架已经存在,可以满足您的需求,而且似乎可以生成一个可以修改和重新部署的随时可用的开发环境,而无需担心冲突和灾难。

我最近才开始研究一种工具,但我知道我认为它能很好地满足您的需求。该工具是Vagrant,Vagrant是一个以轻松配置和设置开发环境为中心的工具,具有您想要的所有插件和结构,最重要的是,其优点之一是易于更改该结构(或“框架“)并简单地运行将破坏和重新部署您的环境的命令。最好的部分,开发环境都是在配置文件中设置的,可以在任何地方重复使用。太好了!

此外,请查看Grunt,Grunt是一个工具,允许您在开发环境中设置任务和处理手动过程。 (它有很多东西,包括js缩小和linting,更少的编译,运行控制台命令),你可以配置任务并将它们链接在一起,但是你想创建一个很好的高效工作流程,绝对值得一试。

最后,看一下称为git flow的git原则,它本质上是一种范例,旨在为您提供可靠,专业的存储库结构和部署过程。它可能对您的需求来说太过分了,但它推动的最重要的事情之一就是使用开发,测试和生产环境。这里有a great link概述,我可以深入研究这些主题,但我提到的工具有很好的文档,并且能够比我更好地解释事情。

花很多时间设置一个良好的环境来满足你的需求是值得的,这可能看起来像是一种浪费,我知道我喜欢跳进来开始弄脏手,但一个井从长远来看,构建和管理的环境将为您节省大量时间。

无论如何,祝你好运!