Управление сайтами с Git

Я начинаю использовать Git для управления сайтами Joomla, и я ищу несколько рекомендаций по лучшей практике. Как это видно:

  • Используйте WHM для создания новой учетной записи. Я написал установочный крючок для автоматической загрузки Joomla из Github и поместите его в соответствующий каталог public_html, а также создайте базу данных и пользователя БД.
  • Вручную установите Joomla через веб-интерфейс (хотя в настоящее время ищет способ автоматизировать это также)
  • Настройка голой репо над public_html - это то, где пользователи нажимают и тянут. Мы будем называть это origin
  • Настройка стандартного репо в public_html
  • Добавить специфичный для Joomla .gitignore
  • Укажите голый репо как наш удаленный (git remote add origin ../repo.git)
  • Выполните git add ., затем git commit -m"Initial J! Commit", затем git push origin master, чтобы получить значение по умолчанию установить в нашем голом репо
  • Добавьте post-receive к голой репо, чтобы автоматически вносить изменения в репо в public_html (так как голый репо - это то, где разработчики будут вносить локальные изменения)
  • Добавить post-update привязку к репо в public_html, если кто-то внесет изменения на сервер ... хотя они не должны

Я не слишком беспокоюсь о базах данных на данный момент. Моя основная проблема сейчас связана с добавлением /изменением файлов Joomla. Очевидно, что при установке шаблонов и расширений некоторые файлы будут добавлены и удалены. Аналогичным образом обновления Joomla будут вызывать изменения.

Каков наилучший способ справиться с этими изменениями на сервере? Я подумывал написать небольшой плагин, который запускает onAfterRender или аналогичный, который использует PHPGit для выполнения git add ., git commit git push origin master. Тогда, в моей местной копии, я могу просто сделать притяжение, и все пройдет. Или есть лучший способ?

7 голосов | спросил codinghands 12 +04002014-10-12T13:46:12+04:00312014bEurope/MoscowSun, 12 Oct 2014 13:46:12 +0400 2014, 13:46:12

1 ответ


3

Я не понимаю, почему вы создали голую /публичную структуру;

Я использую public_html как корень репо с очень полным .gitignore (который необходимо обновить после каждого нового обновления Joomla !, с git status, вы найдете новые файлы и добавьте их, чтобы они не получили версию).

Разработчики продвигаются к отраслям развития; в конце, когда релиз одобрен, он переустанавливается против мастера, проверяется и выводится на производство.

Я не использую hooks, но имею пару скриптов, которые выгружают соответствующие части базы данных, которые я хочу предоставить, но оставляйте пользователю возможность запускать скрипты импорта, если они этого захотят; таким образом, если кто-то работает над новым расширением, они будут сохранять свою конфигурацию, пока не будут готовы поделиться.

Если вы используете less /sass, вы можете запустить компиляцию в post-commit-hooks, чтобы гарантировать, что флаги сжатия всегда включены на сервере.

- обновить: .gitignore -

Я не могу разделить мой .gitignore здесь, поскольку он может быть изменен с каждым Joomla! Обновить. Прежде всего, убедитесь, что ваши eclipse .project.settings и т. Д. И другие файлы, которые вы хотите исключить, находятся в главном .gitignore вместе с конфигурациями.php и .htaccess. Мой мастер .gitignore выглядит так на сайте с неприятными компонентами, которые записывают изменения в свои собственные папки вместо кеша и tmp; плюс он использует sass:

*/.sass-cache
/components/com_sobipro/var/cache/*
/components/com_djclassifieds/images/*
/components/com_sobipro/tmp/*
/components/com_sobipro/var/*
/log
/._db.sql
/logs
/stats
/components/com_sobipro/tmp/edit/*
/.buildpath
/.project
/.settings
/.htaccess
/images/icons/*
/images/photos/*
/images/sobipro/*
/images/classifieds/*
/administrator/cache/*
/tmp/*
/configuration.php
/index.php
/joomla.xml
*.txt

, поэтому я начинаю копировать его (из корня веб-сайта):

cp /home/_core/.gitignore .

Затем взорвите пакет обновления (полный пакет обновления) и запустите

find | sed "s/^\.//"  >> /home/yoursitefolder/public_html/.gitignore

ПРЕДУПРЕЖДЕНИЕ не запускайте поиск на живом сайте, просто в пакете обновления!

Запустите несколько тестов и посмотрите с git-статусом, что будет добавлено каждый раз, прежде чем вы завершите процедуру и напишите сценарии bash для этого: это то, что я использую, но не гарантируется, что оно будет соответствовать вашим требованиям 100%

ответил Riccardo Zorn 13 +04002014-10-13T11:45:37+04:00312014bEurope/MoscowMon, 13 Oct 2014 11:45:37 +0400 2014, 11:45:37

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132