Для каждой отдельной функциональности делаете отдельную ветку, в которой будет разрабатываться эта фунциональность. Как только все в этой ветке работает правильно, и это протестировано, мержите ее с production — веткой, а затем саму ветку удаляете.
Т.е. вам нужно только для одной локальной машинки? Тогда все просто — создаете папку, захожите в нее и с помощью git init создаете репозиторий и все… все commit делаете находясь в этой же папке. Вы больше не нуждаетесь в командах git push и git pull, потому как у вас не будет удаленных веток.