Я думаю, что эта статья Кента Бек , относящаяся больше к TDD, и модульное тестирование суммирует это довольно хорошо. В принципе, это зависит от того, как вы на самом деле пишете тесты *. Вот еще одна статья по этому вопросу , которая может помочь прояснить ситуацию.
* Если вы тестируете из своего приложения, то это whitebox. Если вы тестируете его так же, как аутсайдер сделает вызовы только для вашего публичного API, то это черный ящик.
Да. Прежде чем делать какой-либо коммит, вы можете просто сделать git symbolic-ref HEAD refs/heads/not-master
. Это меняет название ветки, в которой вы находитесь (без коммитов).