У меня есть Git-репозиторий, в котором весь мой код находится в основной ветке, и ранее я просто игнорировал все файлы Drupal, так что я держал строгое разделение между кодом, который я написал (или изменил или мог изменить), и кодом это может быть сгенерировано с помощью Drush или чего-то еще.
Это казалось хорошей стратегией, пока мне не пришлось обновить Drupal. Я понял, что хочу откатиться, если дела пойдут плохо, и какой инструмент лучше использовать, чем Git, для этого. Я подумал про себя, что это будет идеальная ситуация для функциональной ветки, поэтому я создал drupal-7.14
ветку, которая сама .gitignore
по себе игнорирует весь мой код и файлы настроек и обращает внимание только на те файлы, которые являются частью установки Drupal, и я бы этого не сделал. не трогай Я сделал обновление вручную (загрузка, распаковка, распаковка, копирование), перебирая пограничные случаи, такие как robots.txt и .htaccess, и переписывая .gitignore Drupal своим собственным. Я исправил некоторые настройки, которые работали с 7.14, но не с 7.15, чтобы восстановиться после ошибки 500, и тогда все казалось идеальным. Я переименовал филиал в drupal-7.15
и собирался идти счастливо.
Пока я не осознал, что сделал непреднамеренно: файлы, которые ранее не отслеживались моей основной веткой, но оставались в рабочем каталоге, теперь удалялись из рабочего каталога, когда я извлекал мастер, так как они больше не были неотслеживаемыми файлами! D'о!
Если я объединю drupal-7.15
ветку с мастером, я потеряю разделение кода.
Вероятно, есть какой-то способ преобразовать ветку в подмодуль. Предполагая, что это возможно, это может быть лучшей стратегией. До того, как я это сделал, я знал, что подмодули были «правильным» решением, но, поскольку я не осознавал побочный эффект использования веток для ранее неотслеживаемых файлов, я решил срезать углы и пойти по этому пути. (Кроме того, все подходы, которые я видел к использованию подмодулей с Drupal, предполагают, что вы начинаете новый проект, и Drupal будет основной веткой. Мне нежелательно делать чужой код главной веткой, и у меня уже было репозиторий с мастер-веткой. Это выглядело так, как будто было бы слишком сложно просто выполнить обновление.)
Может быть какое-то другое решение, о котором я не думал.
Как я могу лучше всего оправиться от этого с наименьшим количеством возможных недостатков?
ОБНОВЛЕНИЕ : Это находится в разработке (на виртуальной машине Linux на моем ноутбуке), и еще не запущено в производство. К тому времени, когда мы перейдем к производству, я планирую все обернуть в функциональные модули, но это еще не сделано.
ОБНОВЛЕНИЕ 2 : Подмодули могут не работать. Согласно Pro Git , «Подмодули позволяют вам хранить Git-репозиторий как подкаталог другого Git-репозитория». Drupal не дает такого хорошего разделения. Вместо того, чтобы весь код Drupal находился в подкаталоге, отношения более или менее инвертированы, но чистого разделения по-прежнему нет, поскольку вы, возможно, редактируете свои .htaccess и robots.txt, поэтому ваш код и репозиторий Drupal смешаны вместе. Я ищу решение этой проблемы .