Я работаю в нескольких веб-сайтах, оба веб-сайта нуждается почти в том же коде за исключением некоторых изменений в изображениях и CSS или настройках.
Я только что закончен для чтения главы branchs Pro книги Мерзавца, и я немного смущен, если ответвление не является лучшим решением для этой проблемы, ветвление?
Я имею в виду, у нас есть экземпляры A, и B кода, между A и B, различиями являются вещи, любит цвета CSS, URL, ключи API, но большая часть кода является тем же, поэтому каким образом я могу иметь дело с этим, я нуждаюсь в чем-то как код в A и затем 'исправляю' его для получения B, но я не уверен, как делают слияние, которое не делает изображений переопределений...
Так или иначе, если ответвление или ветвление, как я могу сделать слияние для новых возможностей в без потерянных изменений в B?
Это немного хитро, и я боюсь, что нет никакого единственного "правильного" ответа. Я действительно соглашаюсь, что поддержание отдельных ответвлений для A и B не является соответствующим использованием мерзавца.
Ваша первая опция состоит в том, чтобы просто разветвиться один от другого. Оборотная сторона, конечно, то, что теперь необходимо поддержать две отдельных кодовых базы. Ужасный.
Вторая опция состоит в том, чтобы разветвить только различия (например, изображения и каталоги CSS). Это оставило бы Вас с 3 репозиториями мерзавца: код (только одна кодовая база для поддержания, ура!), изображения/CSS/и т.д. для A и того же для B. Оборотная сторона с этим подходом - то, что он усложняет развертывание, особенно если необходимо развернуть и код и изменения стиля одновременно.
С другой стороны, Вы могли, конечно, оскорбить мерзавца для поддержания единого репозитория и с A и с B как отдельные ответвления. Нет, это не идеально, но строго говоря это работало бы. Однако это - возможно более грязное решение проблемы, чем первое предложение (разветвляющийся A и B полностью).
Никто, но (и Ваша команда) можно сказать Вам, который является "правильным" подходом для Вашей ситуации. Я желаю Вам всего наилучшего, хотя!
Почему бы не создать "шаблонное" ответвление, которое есть общий материал и объединяет это в ответвления на веб-сайт? Ни один из специализированного материала никогда не должен появляться в шаблонном ответвлении, и идеально специализированный материал был бы изолирован в специальные файлы, хотя это не строгая необходимость. Если можно изолировать к уровню файла, .gitignore специализированные файлы на шаблоне переходят для безопасности.
Когда Вы вносите изменение, изменяете его на шаблоне и объединяетесь с каждым ответвлением в свою очередь. Каждый веб-сайт должен применить изменение, чтобы обработать по шаблону и сохранить их специализированную работу.