Непрерывная интеграция с Git
Я хотел бы обеспечить интеграционные хуки поверх Git, чтобы толчки отклонялись, когда интеграция не удалась. Например, когда разработчик вносит свои изменения, я хотел бы убедиться, что проект все еще успешно компилируется.
В настоящее время я установил хук после обновления для проверки компиляции. Однако, когда я хочу отклонить толчок, я отменяю изменения и информирую разработчика об этом:
git revert --no-edit HEAD
echo "Rejected !"
Моя проблема в том, что, когда другой разработчик хочет выдвинуть свои изменения, он должен сначала вытянуть, таким образом, переопределяя свою работу, а затем должен выполнить болезненные команды reset / stash для правильного объединения.
Более того, возврат не будет работать в случае слияния веток (для которого нужна опция -m)
Мой текущий обходной путь заключается в том, что вместо возврата на сервер я объединяю изменения в другой ветке (которая является исходной по умолчанию для моих разработчиков):
git checkout integrated
git merge master
Каков наилучший подход для достижения этой цели?