Multi Git Repo con los mismos files

En primer lugar, hay una buena posibilidad de que mi cerebro esté solo frito y no esté pensando claramente … No estoy seguro de cómo explicar esto correctamente 🙁

Configuración de mi Repo

Tengo dos repositorys, Framework y Client1.

El primero tiene todos los files, incluidos algunos que se modificarán en el repository del Cliente. Estos solo se consideran marcadores de position o files de ejemplo.

El segundo repository, Client1, contiene files agregados que no pertenecen a Framework, así como la modificación de algunos de los files del repository de Framework.

El repository de Client1 comienza retirando el repository del Framework, luego agrego / edito files para adaptarme al website del cliente. Cuando se modifican los files repo del Framework, los fusiono en el repository de Client1.

Esto terminará causando conflictos. Existe la posibilidad de que haya muchos conflictos.

¿Puedo git pull y aceptar solo mis files para los conflictos, en un solo command? Solo para hacer las cosas más rápido.

¿O hay de todos modos para hacer esto mejor?

EDITAR: Hemos cambiado nuestro marco para que el cliente no toque los files principales. En su lugar, colocan los files en otra carpeta si necesitan sobrescribir el file de estructura.

Por ejemplo: el cliente necesita modificar el controller de la página de contacto que está ubicado en /framework/application/controller/contact/index.php . El cliente crea un file en /application/controller/contact/index.php para anular el que está en el marco.

También comenzamos a usar Git-Flow.

Por lo que puedo entender en base a lo que has dicho, tu repository de framework es esencialmente una plantilla que ingresas en tu repository de desarrollo que usas activamente para el desarrollo. El problema que tiene es cuando realiza cambios en su marco de trabajo, y desea aplicar esos cambios a su entorno de desarrollo activo (Cliente1) que ya ha creado y tal vez incluso modificó el marco que utilizó anteriormente.

No podría decirle sobre un command específico para asegurar que no haya conflictos, pero me gustaría transmitirle un poco de conocimiento sobre las forms en que puede mejorarse.

En primer lugar, creo que este marco debería ser algo más o less igual, técnicamente no deberías modificarlo en tu cliente muy a menudo, dicho esto, creo que puedes estar reinventando la rueda en algunas áreas. En verdad, ya existen frameworks para hacer exactamente lo que usted desea, y eso parece estar generando un entorno de desarrollo listo para usar que puede modificar y volver a implementar sin preocuparse por conflictos y desastres.

Hay una herramienta que recién comencé a estudiar, pero sé lo suficiente como para decir que creo que responderá muy bien a sus necesidades. Esa herramienta es Vagrant , Vagrant es una herramienta cinput en configurar y configurar fácilmente un entorno de desarrollo con todos los complementos y la estructura que desee, y lo más importante, uno de sus méritos es la facilidad de cambiar esa estructura (o "Marco") y simplemente ejecutando un command que destruirá y volverá a implementar su entorno. La mejor parte, el entorno de desarrollo está todo configurado en un file de configuration, que puede ser reutilizado en cualquier lugar. ¡Bastante agradable!

Además, echa un vistazo a Grunt , Grunt es una herramienta que te permite configurar tareas y manejar processs manuales en tu entorno de desarrollo. (Incluye muchas cosas, como js minificación y borrado, less compilation, ejecutar commands de console), puede configurar tareas y encadenarlas como desee para crear un flujo de trabajo agradable y eficiente, definitivamente vale la pena consultarlo.

Finalmente, eche un vistazo a un principio de git conocido como flujo de git, es esencialmente una especie de paradigma que pretende proporcionarle una estructura de repository sólida y un process de implementación. Puede ser exagerado para sus necesidades, pero una de las cosas más importantes que promueve es el uso de un entorno de desarrollo, testings y producción. Aquí hay un gran enlace que lo describe bien, podría profundizar en estos temas, pero las herramientas que he mencionado tienen excelentes documentos y explican las cosas mucho mejor que yo.

Merece la pena dedicar mucho time a configurar un buen entorno para adaptarlo a sus necesidades, puede parecer un desperdicio, lo sé por mí. Me gusta saltar y empezar a ensuciarme las manos, pero un pozo bien construido y administrado. el medio ambiente le ahorrará MUCHO time en el largo ploop.

¡En fin, buena suerte!