Поздравляю! Вы попали в архивный блог! Все новые материалы публикуются на hmdw.meX
Просмотров: 4158

Git. Публикация изменений на тестовый сервер.

При разработке веб-приложений сталкиваюсь иногда со сложностью синхронизации данных на локальном компьютере и тестовом сервере (не все можно протестить на локалке). Конечно можно решить эту проблему применив старый добрый rsync, но сегодня я расскажу как можно для эти целей использовать git.

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

У меня же это пока практически пустой и непосещаемый сервер проекты на котором находятся в зачаточном состоянии. Поэтому можно нарушить правила и делать коммиты прямо на продакшн =)

Описывать установку git на локальном компьютере и сервере принципиально не буду (про sudo apt-get install git пишут все кому не лень). Будем считать что вы уже добавили ssh-ключи и установили git.

Далее идет мой испорченный перевод мануала, вот оригинал.

Вкратце опишу рецепт:

1) Создается пустой bare git-репозиторий на сервере

git --bare init

2) Создается репозиторий в папке с проектом на локальном компьютере и добавляются все файлы проекта

git init
git add .
git commit -q -m "first"

3) На сервере в .git/hooks создается хук post-receive с содержимым типа:

#!/bin/sh
GIT_WORK_TREE=/var/www/www.example.org git checkout -f

и даются права на запись (chmod +x post-receive). Вместо /var/www/www.example.org ваш путь к директории сервера.

4) Затем репозиторий назначается как web

git remote add web ssh://server.example.org/путь_к_удаленному_репозиторию/website.git
git push web +master:refs/heads/master

5) Все! Теперь после проведения локальных коммитов опубликовать их на сервере можно одной командой

git push web

Если есть трудности с настройкой - пишите в комментариях, постараюсь помочь!

twitter.com facebook.com vkontakte.ru odnoklassniki.ru livejournal.ru yandex.ru
Теги:
Эта запись опубликована: Пятница, 31 августа 2012 в рубрике Web-разработка.

Оставьте комментарий!