Вот моя проблема. Компания, с которой я работаю, началась с одного веб-сайта, основанного на osCommerce (задолго до того, как я пришел). Сайт рос, они начали вторую, скопировав первую и, при необходимости, изменив ее. На протяжении многих лет это продолжалось, и теперь мы имеем пять отдельных сайтов, все они основаны на одном и том же коде. Когда мы вносим изменения на один сайт, мне приходится вручную копировать эти изменения ко всему другому коду сайтов и загружать все измененные коды на каждый из сайтов.Объединение нескольких сайтов в один Git Repo
Это очень неэффективно и сводит меня с ума. Я знаю, что Git в значительной степени предназначен для решения таких проблем. В настоящее время у меня есть каждый сайт, как собственный Git-репо, но я все равно вынужден копировать изменения от одного к другому. Я тоже довольно новичок в Git. Я получаю фиксации, ветки, тяги и т. Д., Но в остальном я довольно зеленый.
В любом случае, я могу объединить все эти сайты в один репо и как мне это сделать? Я также должен указать, что файлы на каждом сайте не обязательно идентичны. Один из сайтов считается приоритетным, поэтому некоторые изменения были внесены в чрезвычайные ситуации, которые не были развернуты на других сайтах, а другая - несколько иначе, чем другие 4, поэтому в некоторых местах код немного отличается. , Я понимаю, что это вызовет конфликты, но я хотел бы найти все конфликты, разрешить их, чтобы система работала по назначению и имела какие-либо изменения в зависимости от базы данных/параметров. Босс хочет развернуть по крайней мере еще 2 сайта через пару месяцев, поэтому в этот момент я действительно потеряю рассудок.
Является ли то, что я хочу, даже возможно? Будет ли это требовать, чтобы я просматривал каждый файл для разрешения конфликтов? Любая помощь высоко ценится!
Включение несвязанных файлов в один и тот же репозиторий, даже с общим кодом, не является хорошей идеей. У вас будет своя история объединений, ограничение доступа к некоторым репозиториям будет практически невозможным и т. Д. Самый разумный подход будет делать репо для общего кода ** и ** на каждом сайте и использовать 'git subodule' для включения общего кода на каждый сайт. В этом случае ваш общий код должен быть полностью отделен от любого конкретного сайта. – KurzedMetal