Перенос производственного сайта без 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.

Author: James, 2011-04-29

1 answers

Если вы не заинтересованы в использовании более сложных решений для развертывания, таких как Capistrano, вы можете настроить крюк после получения в своем репозитории, который проверяет последние изменения в вашем рабочем корневом каталоге. Вы можете настроить отдельный крючок как для разработчиков, так и для производства. Вот довольно хорошее руководство для этого.

 1
Author: Eric Conner, 2011-04-29 18:52:30