Чего я хочу достичь:
У меня есть только что установленный git на моем сервере разработки.
Я создаю ветку из моей ветки ‘разработка’, работаю над моей новой веткой функций, фиксирую, и когда я закончу — я объединяю новую ветку функций с веткой ‘разработки’.
Чтобы применить изменения для ветки ‘development’ на моем сервере разработки, я должен войти на свой сервер и использовать git pull
— который я пытаюсь предотвратить и происходит автоматически — когда есть что извлечь из моего сервера разработки — это будет сделано автоматически.
Я надеюсь, что я ясно о том, что я пытаюсь достичь;)
То, что я сделал до сих пор:
Создал папку внутри моего проекта /www/hooks/
и добавил файл с именем post-merge
: Подписка мерзкая документация — это должно срабатывать всякий раз, когда я объединяю ветку.
Внутри этой папки я добавил текст:
который должен выполнять все, что находится между символом backticks (`) как команда оболочки (следуя этой документации PHP)
/www/.git/hooks/
Я добавил символическую ссылку на ранее упомянутый файл с таким же точным именем: /www/hooks/post-merge
:sudo ln -s -f /www/hooks/post-merge /www/.git/hooks/post-merge
/www/.git/hooks/post-merge
Разрешение 775 файлов, как и другие файлы.Некоторые заметки:
Мой репо на Bitbucket
Мой каталог /www/homepage/
это файл с индексным файлом, так что ничто не может работать вне его в браузере (apache2 указывает на это ..) — (но я думаю, что не должно быть проблем, так как он выполняется через /.git/hooks
?)
Я попытался переименовать оба моих файла (один под /www/.git/hooks/
& /www/hooks/
) чтобы post-merge.php
и это не сработало.
просто иметь возврат каретки
#!/bin/bash
git --git-dir "path/master/.git" --work-tree "path/master" pull origin master
Вы можете попробовать это в своем пост-слиянии
Других решений пока нет …