я использую master в качестве основной ветки разработки, куда стараюсь пушить преимущественно рабочий и законченный код. Для процесса разработки создаю отдельные тематические ветки, которые перед слиянием с мастером (ну и периодически для долгоживущих веток) привожу в порядок с помощью git rebase.
Продакшн код (релизы) подготавливаю в отдельной ветке и сливаю release ветку с master и production.
Нерабочий код и всякие недоделки коммичу только в тематические ветки и добавляю к описанию коммита префикс "WIP" (work-in-progress) и иногда дополняю инфой о том, что ещё хотел,но не успел сделать.
Как я понимаю, это преимущественно gitflow политика, с примесью Gilab flow (когда ветка разработки - это master).