Перенос производственного сайта без VCS вообще в Git
Я подумал, что выброшу это там и посмотрю, смогу ли я получить какой-нибудь солидный совет по этому поводу.
У меня есть производственный сайт с довольно большой базой кода, и я только что установил на нем Git, то же самое с тестовым сайтом. И у меня есть локальная ячейка, которая в основном будет точкой интеграции. Наша команда перейдет к локальному ящику, и маленькие гномы придут и перенесут все на наши разные серверы - или, по крайней мере, это самое близкое, что я сделал для реализации Git.
Я действительно у меня нет ни малейшего понятия, с чего начать. У меня есть большая, привередливая, устаревшая кодовая база, к которой я боюсь прикасаться в хороший день. Git должен стать отправной точкой большого процесса очистки, я просто не знаю, с чего начать.
Я подумывал о создании репозитория .git на основе моего производственного корневого каталога (с соответствующими материалами .gitignore), а затем клонировании в среду тестирования и разработки, затем отдельные пользователи клонировали бы dev и приступали к работе, возвращаясь к разработке и затем каким-то волшебным образом говорит git обновлять корневой каталог, когда вносятся изменения в чистое репо.
Я собирался установить git-flow на разработку (не могу заставить его работать на моем рабочем сервере), а затем перейти к производству. Поскольку в конце концов это всего лишь ветви, я решил, что мне сойдет с рук отказ от использования git-потока на серверах prod/test.
Кажется, все это хорошо и хорошо, я просто не знаю, должен ли я настаивать на тестировании/продвижении или переходить от разработчика к тестированию/продвижению. Может быть, просто прямой git init в производственном корне? Создайте каталог .git и введите git в него? Гит, гит, гит, гиггиди, гиггигди...
Идеи приветствуются.
Редактировать
Вот что я в итоге сделал, надеюсь, кто-то еще найдет это полезным.
Загруженный текущий производственный код на сервер разработки (LAMP)
Настройте файлы .gitignore и запустите git init в каталоге и выполните начальный импорт/фиксацию
О Постановке/Производстве серверы:
Создал каталоги YOURNAME.git и создал пустые репозитории с git init--голый
Установите рабочее дерево как /путь/к/моему/public_html, установите значение "голый" в значение "ложь" и установите параметр receive.denycurrentbranch для игнорирования
Добавлена строка в hooks/post-receive: проверка git -f убедившись, что у моего пользователя git есть разрешение на запись в рабочие деревья
Вернуться на сервер разработки:
удаленное добавление git [постановка|производство] ssh://myuser@myserver/path/to/my.git
мастер git push [постановка|производство]
Чтобы обновить мои производственные и промежуточные сайты, достаточно просто нажать git [производство|постановка], и мне не нужно суетиться, скрывая каталог .git от общего просмотра.
Источники:
http://www.deanoj.co.uk/programming/git/using-git-and-a-post-receive-hook-script-for-auto-deployment/
http://toroid.org/ams/git-website-howto
Надеюсь, это поможет кто-нибудь!
Отредактируйте еще раз
Кроме того, лучше всего работает на 1.7.3.3 или более поздней версии. Я запускаю виртуализированную коробку ubuntu для разработки и столкнулся с некоторыми проблемами, связанными с Samba. После борьбы с этим в течение нескольких часов прочитайте, что проблема была исправлена в 1.7.3.3. Я был на 1.7.3.1.
1 answers
Если вы не заинтересованы в использовании более сложных решений для развертывания, таких как Capistrano, вы можете настроить крюк после получения в своем репозитории, который проверяет последние изменения в вашем рабочем корневом каталоге. Вы можете настроить отдельный крючок как для разработчиков, так и для производства. Вот довольно хорошее руководство для этого.