Я создал голую GIT репозиторий на моем сервере и настроить следующий пост-получить крюк от this blog:Гит после приема Крючок не удаляет удаленные файлы с мастер
#!/bin/bash
while read oldrev newrev ref
do
branch=`echo $ref | cut -d/ -f3`
if [ "master" == "$branch" ]; then
git --work-tree=/path/to/my/project/live/ checkout -f $branch
echo 'Changes pushed live.'
fi
if [ "develop" == "$branch" ]; then
git --work-tree=/path/to/my/project/dev/ checkout -f $branch
echo 'Changes pushed to dev.'
fi
done
Так что всякий раз, когда я нажимаю на местном уровне на мой сервер, изменения будут автоматически публиковаться в папке каждого филиала без необходимости вручную вытаскивать.
Я установил правильные права на оба живут в папку Dev:
drwxrwsr-x 2 git git 4096 Sep 29 12:10 live/
drwxrwsr-x 2 git git 4096 Sep 29 12:09 dev/
И толкая от развивать отрасли работы, как ожидалось. Проблема возникает, когда я проверяю мастер-ветку и делаю слияние. Когда я нажимаю мастер, новые файлы копируются в живую папку на моем сервере, но файлы, которые я удаляю локально, не удаляются.
Как я могу сделать post-receive правильно обновить живую папку? Благодаря!
будет работать дерево-дерево, как и ожидалось, если репозиторий является открытым хранилищем? – Shunya
Да, или, по крайней мере, он определенно работает с переменной env, он также должен работать с параметром командной строки. – torek
У меня есть ошибка: remote: mv: невозможно переместить '/ path/to/my/project/dev /' в его подкаталог, '/path/to/my/project/dev/.old.847' и удаленный : не удается переместить живую версию в сторону – Norbert