Контекст:
У меня установлен pre-commit
хук для всех моих локальных репозиториев.
По сути, мой хук выполняет все модульные тесты, выходя с 0, когда все тесты пройдены и выход с ненулевым значением, если хотя бы один тест не пройден или если тест не выполняется.
Таким образом, git commit
создает фиксацию только тогда, когда все модульные тесты успешны. В противном случае фиксация прерывается, и я должен исправить свой код и / или свои тесты, но я должен выполнить свои тесты, а затем повторить попытку ...
При такой настройке я знаю, что каждый созданный мной коммит был должным образом проверено и что я могу безопасно отправить их sh на пульт.
Проблема:
Но у меня есть только одна проблема с этой настройкой: git rebase
. Я делаю git rebase
с моими локальными ветвями.
Когда я перебазирую ветвь, я хотел бы запускать модульные тесты при каждом новом коммите, который вот-вот будет создан. Я не нашел никакой документации по этому конкретному c варианту использования. Я знаю, что хук pre-rebase
существует, но он срабатывает только до начала перебазирования, давая возможность отменить его. Он не срабатывает для каждого нового коммита, который будет создан из этой ребаза.
Вопрос:
Есть ли ловушка, или техника, или что-нибудь еще, что может помочь мне автоматизировать процесс перебазирования ветви и одновременно дает мне уверенность в том, что все модульные тесты выполнялись при каждом новом созданном коммите? Он также должен работать с git rebase
и git rebase --interactive
.
В принципе, я думаю, git rebase
должен запускать хук pre-commit
, когда он собирается создать новый коммит.