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