Настройка git репозитория для публикации обновлений на продакшн-сервере

Понадобилось настроить git репозиторий так, чтобы программист вносил изменения у себя на компе и имел возможность публиковать их на продакшн-сервере с сайтом без радостей использования файловых менеджеров. Ну и отменять внесённые изменения тоже одной строчкой кода. Приведу листинг того, как я реализовал это на Debian 5.0 Lenny:

apt-get update
aptitude full-upgrade
aptitude install git-core
adduser git
usermod -a -G mygroup git
su git
cd ~
mkdir .ssh && cd .ssh
cat /tmp/id_rsa.john.pub >> ~/.ssh/authorized_keys
 
git init
vi .git/description
cd .git/hooks
chmod a+x update post-update post-receive
git add .
git commit -am "initial commit"
 
git config --add receive.denyCurrentBranch ignore

Добавить в .git/hooks/post-update:

git --git-dir=. --work-tree=.. reset --hard

Вписать в .git/hooks/post-receive

#!/bin/bash
cd ..
env -u GIT_DIR git reset --hard master

Ну и отменять внесённые изменения надо через:

git revert HEAD

4 thoughts on “Настройка git репозитория для публикации обновлений на продакшн-сервере

  1. miha-ha

    А можно подробнее разъяснить?
    Интересует: зачем создан пользователь git? и описание hooks – что именно они делают…
    так сказать разжевать для начинающих

    Спасибо!

    Reply
    1. anonymous Post author

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

      что касается хуксов, то это скрипты, которые запускаются при наступлении определённого события. например, после получения коммита. подробнее можно почитать тут http://book.git-scm.com/5_git_hooks.html , потому как в двух словах не объяснишь – там очень много нюансов.

      Reply
    1. anonymous Post author

      в ней опечатка! должно быть:
      cat /tmp/id_rsa.john.pub >> ~/.ssh/authorized_keys
      ею вы разрешаете на удалённом сервере авторизацию по ключу (без пароля)

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *