Могу ли я использовать git для обновления удаленного сервера? - PullRequest
6 голосов
/ 14 января 2010

Я использую git для отслеживания проекта, и, если это возможно, я хотел бы настроить все так, чтобы git обрабатывал всю мою обработку кода, я мог иметь локальный репозиторий для тестирования, а затем отправлять изменения на сервер с мерзавцем, чтобы заставить их жить. Однако, пытаясь использовать стандартные вызовы git push, я просто получаю непоследовательные ветвления и ужасный беспорядок противоречивых историй. Есть ли способ управлять постановкой с помощью git?

Ответы [ 2 ]

9 голосов
/ 14 января 2010

В этом блоге приведен пример репозитория Git, используемого для постановки:

IDE => local Git repository => remote bare Git repository 
                                   => Git repository with the live web application

Он включает в себя перезапись после обновления со стороны чистого репо, чтобы запустить обновление репо на стороне живого веб-сервера.

Последний шаг - определить сценарий перехвата «после обновления» в пустом репозитории, который вызывается, когда пустой репозиторий получает данные.
Чтобы включить ловушку «пост-обновление», нам нужно либо сделать исполняемый файл hooks/post-update, либо переименовать hooks/post-update.sample в hooks/post-update, в зависимости от версии Git.
В этом сценарии мы просто переходим в папку активного приложения и запускаем операцию извлечения:

#!/bin/sh
cd $HOME/example.org
unset GIT_DIR
git pull bare master

exec git-update-server-info

Причина, по которой существует пустое удаленное репо, заключается в том, что он «не рекомендуется» делать репо с рабочим каталогом.

0 голосов
/ 14 января 2010

Несмотря на то, что git является распределенной системой управления версиями, обычно хорошей идеей является наличие центрального хранилища (может быть --bare). Это упростит вещи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...