Нет ничего плохого в маленьких коммитах. На самом деле, они предпочтительнее, так как их легче просматривать, чем большой патч. Они лучше показывают ваш мыслительный процесс и позволяют анализировать работу небольшими порциями. И рецензент всегда может превратить множество маленьких коммитов в один большой, но обратное сделать невозможно. Это предполагает, что ваши коммиты имеют форму логических блоков.
Но так как вы не тестируете до после , когда вы нажимаете, я думаю, что ваши коммиты больше похожи на "упс, я сломал что-то в последний коммит". Это не хорошо и будет мешать обзору. В идеале они должны быть --amend
ed для предыдущего коммита.
Код, коммит, потом тест мешает TDD. Что вы хотите сделать, так это начать с известного хорошего состояния, написать код, запустить тесты, увидеть сбой, а затем узнать, что оно было вызвано чем-то в вашем очень маленьком и простом для отладки diff.
Это также означает, что вы вносите неработающие изменения в мастера, что приведет всех остальных в команду.
Так что да, вам нужна тестовая среда на вашем компьютере разработчика. То, что запускается нажатием кнопки и быстро завершается (мы говорим минуты, вершины). Если полный набор окажется слишком медленным или громоздким, вы можете запустить только часть пакета, возможно, ту часть, которая, по вашему мнению, наиболее соответствует вашим изменениям, и затем позволить тестовому серверу запустить полный пакет после нажатия. Это хороший компромисс между эффективностью теста и тщательностью.
Если по какой-то причине вы не можете запустить тестовую среду на своем компьютере разработчика, вы можете работать в своей собственной ветке и отправить ее для тестирования. Тогда, если это не сработает, вы можете --amend
исправить. Как только вы закончите с вашей функцией, вы можете объединить ваши изменения в мастер. Это исключает коммиты «упс, я сломал» и удерживает вас от взлома мастера для всех остальных, в то же время делая небольшие коммиты, которые легко просматривать.
То, для чего вы должны использовать свой сервер тестирования, - это запускать тесты как можно ближе к симуляции производства, машины разработчика часто бывают разнородными и это нормально, а также автоматизировать запуск тестов в случае, если кто-то запутался.