Как сообщить Git, что определенные файлы в одной ветке разветвлены друг от друга - PullRequest
1 голос
/ 27 марта 2012

У нас есть продукт с различными темами, которые хранятся в основной ветке, например:

themes/theme_one/...
themes/theme_two/...
etc

Каждая папка имеет свою собственную структуру и содержит файлы CSS и HTML.Иногда один из наших клиентов хочет иметь собственную тему.Поскольку у нас широкий выбор тем, обычно есть тема, которая очень похожа на то, что нужно клиенту, и которая требует только косметических изменений.Поэтому я обычно создаю ветку new_customer, переключаюсь на эту ветку, копирую выбранную тему (например, themes / theme_two / -> themes / custom_theme /) и изменяю ее, применяя изменения, которые необходимы заказчику.Иногда изменения минимальны, иногда они больше, но результирующая тема все еще в значительной степени наследует от своего родителя.

Какой самый эффективный способ организовать это?Предположим, мы заметили некоторые случайные ошибки в themes / theme_two / и применили исправления.Является ли тема каким-то образом, чтобы сказать Git, что themes / custom_theme / в действительности является чем-то вроде ветки из themes / theme_two /, и все изменения также должны быть применены там (даже если они все еще существуют в контексте их соответствующих ветвей - master иnew_customer).

Некоторое время назад я читал книгу о Git и смутно помню кое-что о подмодулях.Это классический способ решения такой проблемы, и если да, то как это будет работать?Буду ли я делать что-то вроде этого - настроить отдельное хранилище для тем (может быть ветвь для каждой темы), а затем в главном мастере продукта создайте папки тем /.../ и свяжите их с соответствующими ветками тем.Затем, когда мне нужно будет создать собственную тему, я создам ветку some_customer из мастера основных продуктов, создадим ветку из ветви theme_two другого репозитория и загрузим ее как подмодуль в themes / custom_theme / ветки new_customer?

1 Ответ

0 голосов
/ 27 марта 2012

Я думаю, что лучшим способом было бы сделать ветвь для каждой темы и всегда сливаться из theme_two в custom_theme. Я не знаю способа слияния части иерархии каталогов git, и нет способа записать такое частичное слияние.

...