Если один в репе - создаешь ветку develop и туда пушишь, и делаешь ПР с develop к main. В main только рабочий код, в develop можешь делать фиксации с тегом WIP: . Так у тебя будет ветка для разработки, и ветка, в которой всегда программа работает, и так как нужно. Плюс к этому, так ты сможешь реализовать простое CI/CD, сделать деплой по пушу в main, а при пуше в девелоп запускать тесты, линтеры и т д.