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