Эта статья является частью серии, созданной в сотрудничестве с SiteGround . Спасибо за поддержку партнеров, которые делают возможным использование SitePoint.
Многие разработчики могут захотеть использовать контроль версий со своим сайтом Magento, когда они его разрабатывают, и, возможно, продолжать делать это, поддерживая и добавляя их на живой сайт. Здесь мы сосредоточимся на Git как на выбранной системе контроля версий. Эта статья предназначена не как пошаговая инструкция, а скорее как набор советов и вещей, которые следует учитывать при работе с Magento и Git.
Зачем использовать Magento и Git вообще?
Magento — одна из самых популярных и инновационных платформ электронной коммерции в мире. С огромной клиентской базой и бесчисленными разработчиками, создающими приложения, расширяющими и тематизирующими их, Magento является отличным выбором для сайтов электронной коммерции.
Git также является ведущей системой контроля версий в наше время. Есть много мест для Git-хостинга, таких как GitHub или BitBucket , ( Каковы различия между Git и BitBucket? ), И Git является самой простой VCS для использования, если вы хотите, чтобы большинство разработчиков были знакомы с ней, поскольку она используется везде и для самых разных проектов, от одностраничных частных сайтов до массовых производственных приложений.
Почему вы хотите контролировать версию своего сайта Magento с помощью Git? На этот вопрос также легко ответить. При создании или изменении таких вещей, как темы или другое пользовательское кодирование, вы должны убедиться, что эти изменения не только сохранены, но и сохраняют возможность простого отката изменений. Возможно, вы захотите, чтобы другие разработчики могли клонировать ваши рабочие настройки, а также добавлять функции или исправления или легко развертывать код вашего сайта на другом тестовом или промежуточном сервере. Git может помочь со всем этим.
Решение, что включить в репозиторий
Одним из первых решений является то, что именно включить в хранилище. Это будет сильно зависеть от вашего варианта использования.
Во-первых, определитесь с вашим подходом
Во-первых, вам нужно определиться с вашим подходом. Для чего нужен Git-репозиторий? Вы хотите сохранить весь свой сайт? Если это так, вам нужно будет записать элементы, которые вы не хотите хранить в хранилище. Это может быть полезно, если у вас небольшая команда, и вам проще просто развернуть большой репозиторий Git, содержащий ваш (почти) весь сайт, чем настраивать Magento в новой среде, а затем извлечь только несколько ресурсов из Git репозиторий.
С другой стороны, возможно, ваша команда уже настроена с существенными инструментами для сборки и может без проблем развернуть ту же версию Magento и другого программного обеспечения в любой среде, и вам действительно нужно только контролировать версии определенных файлов, которые находятся в стадии разработки ,
Знание вашего подхода будет диктовать остальные ваши решения Git с Magento.
Рассмотрим базы данных и файлы конфигурации
Некоторые команды Git делают дампы базы данных в файлы, которые находятся внутри Git-репозитория, так что при создании новой среды, как только репозиторий сносится, у вас есть сравнительно недавняя копия рабочей базы данных для использования при настройке нового разработчика или тестовая среда.
Другие команды могут помешать этому. Это может зависеть от вашей ситуации и, что еще важнее, от вашей команды и безопасности проекта. Если проект с открытым исходным кодом или открыт для большой части вашей собственной компании, вы даже можете не включать копии файлов базы данных, поскольку это будет крайне небезопасно. Доступный среди трех разработчиков в частном репозитории, для запускаемого приложения, которое все еще находится в стадии разработки, а не в производстве, это может быть именно тем, что вы хотите. Однако, если вы не поместите дамп базы данных в свой репозиторий, вам нужно будет создать процесс для совместного использования файлов базы данных, чтобы создать клонированные среды, необходимые для разработки и тестирования.
Конфигурационные файлы обрабатываются практически одинаково. Как правило, вы хотите сохранить magento/app/etc/local.xml
в своем хранилище, если у вас есть какие-либо проблемы с безопасностью, из-за учетных данных, хранящихся в нем.
Как работать с изображениями
Папка /media
может стать довольно большой для больших установок Magento. Когда его содержание ниже определенного объема, возможно, на стадии разработки или на ранних этапах, имеет смысл включить его, чтобы иметь изображение для тестирования в других средах. Когда он начинает становиться слишком большим, возможно, имеет смысл просто игнорировать все это, а затем, возможно, использовать поддельный набор изображений для тестовых сред.
Настройка вашего .gitignore
Как только вы примете решение о том, что вы хотите в своем Git-репозитории, следующим шагом перед началом использования Git будет .gitignore
содержимого файла .gitignore
(элементов, которые Git будет игнорировать при нажатии на или вытаскивая из вашего репозитория проекта). Этот файл .gitignore
в корне вашего репозитория и дает Git команду игнорировать файлы. Это может быть сравнительно небольшой список, как показано ниже, или он может охватывать большую часть вашего приложения — это зависит от вашей стратегии управления версиями.
magento/app/etc/local.xml magento/cron.php magento/cron.sh magento/errors/ magento/install.php magento/LICENSE* magento/media magento/RELEASE_NOTES.txt magento/robots.txt
иmagento/app/etc/local.xml magento/cron.php magento/cron.sh magento/errors/ magento/install.php magento/LICENSE* magento/media magento/RELEASE_NOTES.txt magento/robots.txt
Обратите внимание, что это не полный .gitignore для копирования и вставки, а просто набор идей — вам нужно будет выбрать дополнительные элементы для удаления или добавления в этот список, в зависимости от потребностей вашего собственного проекта.
Вы также можете захотеть взглянуть на содержимое вашего .htaccess
— если оно относится к вашей среде, это может быть проигнорировано. Вы также можете игнорировать некоторые или все var
кэширования, ошибок и т. Д., Которые могут оказаться ненужными для фиксации контроля версий.
Git Security
Вы захотите убедиться в безопасности своего репозитория Git. У кого есть доступ к хранилищу, и у них есть права на чтение или запись? Вы изменяете или отменяете разрешения, когда пользователь меняет роли или покидает ваш проект? Это проект с открытым исходным кодом или частный? Может ли он когда-нибудь стать открытым исходным кодом? Это все соображения, когда вы впервые настраиваете свой репозиторий.
Разветвленная структура и окружение
Еще одна вещь, которую стоит рассмотреть в самом начале, — это ваша ветвящаяся структура. Многие проекты имеют нечто похожее на следующее:
- Development - Staging - Production
Но, конечно, вы можете адаптировать филиалы к вашим потребностям. Вы можете иметь временные ветки, например, для разработки тем или пользовательских функций, а затем объединить их в конвейер разработки после завершения. Стратегия зависит от вас, но важная часть заключается в том, чтобы спланировать и выполнить ее, а не попасть в ловушку передачи всего в master
ветку в вашем хранилище. Ветвление — одна из причин, по которой вы используете Git
Стратегия развертывания
Наконец, вы можете рассмотреть и свою стратегию развертывания. Собираетесь ли вы использовать Git на рабочем сервере? Будете ли вы использовать стороннюю службу, такую как DeployHQ, для развертывания через FTP при обновлении вашего репозитория Git? Или вы будете делать развертывания вручную?
SiteGround предлагает интеграцию Git, которая очень удобна для разработчиков, которые используют их хостинг.
Вывод
Благодаря тщательному планированию и настройке, Magento и Git могут работать рука об руку, чтобы предоставить вам лучший, более безопасный сайт и гораздо более эффективную стратегию развития. Выйдите и создайте потрясающие платформы для электронной коммерции с Magento и Git, и сохраните их в безопасности и продуктивности!