Как организовать контроль версий двух одинаковых сайтов?
3 ветки кода:
основная и по ветке специфичных изменений на каждый из сайтов.
изменения из основной периодически вливаются в ветки сайтов.
главное код хорошо тестами покрыть)
Либо второй вариант - если отличия реально незначительные, и в будущем усугубление ситуации не планируется - можно заворачивать оба домена на один и тот же код, а в самом коде реализовать ветвление.
Нужно 3 ветки в репозитории - ядро + сайт1 + сайт2
в репозиториях сайт1 и сайт2 делаете git submodule ядро
теперь сайт1 и сайт2 содержат ядро как часть кода
но это сработает только в том случае, когда сайт1 и сайт2 используют ядро, но не модифицируют его. Допустимо наследование, замена классов, настройка через файл конфигурации
Например, ядро содержит файл HttpRequest.php с классом HttpRequest
А в приложении сайт1 требуется дополнительные функции в этом классе
Тогда возможны два варианта решения в зависимости от того, что реализовано в ядре:
1. Настройка автозагрузки файлов
Создаём копию файла Site1HttpRequest.php c определением класса HttpRequest  в коде сайт1
Настраиваем autoloader для сайт1 так, чтобы при обращении к определению класса HttpRequest использовался файл Site1HttpRequest.php
2. Локатор (инверсия зависимостей)
В коде ядра создаём класс-локатор для хранения часто используемых экземпляров, которые он возвращает по ключевому имени. Например сущность с ключом request - это экземпляр класса HttpRequest.
В коде сайт1 создаём класс Site1HttpRequest, который наследует HttpRequest из ядра, расширяем или переопределяем функционал.
В настройках класса-локатора для сайт1 пишем, что если требуется экземпляр к кодом request, то должен загрузиться класс Site1HttpRequest.
Ссылки и куски кода:
1. git submodules
2. Использование таблицы классов в фреймворке YiiYii::$classMap=array(
        'HttpRequest'=>'/path/to/HttpRequest.php', // <-- можно указать другой путь к классу
);
Yii::createWebApplication($config)->run();
3. Application - класс-локатор в фреймворке Yii# @file protected/config/main.php
array(
    'components' => array(
         'request' => array(
            'class' => 'HttpRequest', // <-- можно указать другой класс
        ),
    ),
);