Изменения не «заливаются в папку». Они сначала коммитятся в какую-то локальную ветку,  а затем отправляются в вышестоящий репозиторий. Вы пушите целиком весь проект как есть в его текущем состоянии. 
Какая структура папок у вас локально на компе, такую вы увидите на гитхабе. 
В вопросе чувствуется какой-то подвох. 
Что именно у вас не получается? 
Что имелось в виду под 
Разделили по папкам
Когда вы делате pull из main, то эти папки не появляются у вас локально? 
git commit -m "first commit" 
git push -u origin main
 это довольно странные команды. Они для случая когда вы заливаете новый проект в пустой репозиторий на гитхабе. Но у вас на гитхабе видимо уже есть проект. Чтобы внести изменения вы должны наверное клонировать с гитхаба, создать свою ветку и в ней изменить, и отправить изменения обратно.
И делается это точно не теми командами которые вы процитировали. Рекомендую вам почитать учебник по гиту, а не вбивать непонятные заклинания в терминал в надежде на чудо.