У меня есть проект PHP/Laravel/JS в репозитории Git в Bitbucket.Git: deploy to OpenShift
Проект должен быть развернут в OpenShift через их систему развертывания на основе Git. Они создают репо для вашего приложения. Вы git clone
это. Когда вам нужно развернуть только git push
и OpenShift делает остальные:
- останавливает приложение (веб-сервер);
- записывает файлы проекта и configs (nginx.conf, например) в соответствующие местоположения;
- выполняет пользовательские действия после развертывания (которые для Laravel по меньшей мере:
composer update
иphp artisan migrate
); - перезапускает приложение.
Круто, но:
- * .php, nginx.conf, таможенный пост-сценарии развертывания и т.д., должны быть прижаты к как OpenShift и Bitbucket;
- minified * .js, * .css - только OpenShift;
- raw * .js, * .scss - Только битбакет;
- gulpfile.js, конфигурация Vagrant и другие сотрудники Dev - Bitbucket;
- Кэш Laravel, конфигурация IDE - ни OpenShift, ни Bitbucket.
Каков наилучший способ сделать это? Два .git-openshift и .git-bitbucket (с разным происхождением) вместо одного .git? Что относительно .gitignore? Не использовать систему развертывания OpenShift? Какой инструмент я должен использовать вместо этого? Или, может быть, использовать Hg вместо Git для Bitbucket?
Спасибо за ответ. Но я боюсь, что мой (немой) образ мышления полностью отличается от вашего (правильный). Что вы имеете в виду, говоря: «И ваш производственный код был привязан к этой ветке»? Ну, теперь у меня есть производственная ветвь без истории и отдельный файл .gitignore. И у меня есть главная ветвь с другим .gitignore и кодом, готовым к развертыванию. 'git what' я должен делать до того, как« git push origin production »? – user3368115
@ user3368115 проверить мои изменения, я добавил возможный рабочий процесс –
Как я писал в моем исходном вопросе, у меня есть 4 вида файлов: BB, OS, оба, ни один. Ваш примерный рабочий процесс решает проблему с файлами типа «ОС», но не «обоими». ОК, 'git checkout production' не удаляет из рабочего дерева OS-файлы (автогенерация), поэтому я могу добавить-commit-push их. Но 'git checkout production' также возвращает оба файла (* .php) в свои производственные версии, которые уже развернуты.И я хочу развернуть их основные версии. – user3368115