Как автоматически запускать bash команды после каждой git rebase --continue? - PullRequest
2 голосов
/ 03 апреля 2020

Я пытаюсь перебросить ветку на совершенно другую. Это проект React. Если я зверски сливаю две ветви, я даже не могу скомпилировать код. Поэтому я пытаюсь интерактивно перебазировать.

При этом я хочу убедиться, что после каждого шага перебазировки база кода может компилироваться. Как можно автоматически переустановить node_modules и перезапустить проект (скажем, я использую yarn start для запуска проекта) после каждого git rebase --continue?

Или, если я не на идеальном маршруте, какой будет правильный способ объединить эти две ветви?

1 Ответ

4 голосов
/ 03 апреля 2020

Способ сделать это - использовать -x / --exec для запуска команды между каждым шагом. Например, если я сделаю:

git rebase HEAD~3 -i -x 'npm run ship'

Тогда я увижу следующий план перебазирования:

pick <hash> <message>
exec npm run ship
pick <hash> <message>
exec npm run ship
pick <hash> <message>
exec npm run ship

В этом случае npm run ship - это команда, которая выполняет все linting, тестирование и др. c. чтобы убедиться, что каждый коммит все еще хорош.

Обратите внимание, что команде необходимо преуспеть (т.е. выйти из 0) для продолжения перебазировки, поэтому убедитесь, что это верно для всего, что вы планируете делать проверить каждый коммит.

...