В целом вы думаете правильно и рецепт сработает. После перемещения репозитория гит скажет что вы перенесли все файлы тем в подпапку и придётся создать коммит с этой операцией. Но хоть вы и будете видеть старую историю коммитов, воспользоваться ей будет сложно, так как пути поменялись.
Правильней будет перед перемещением папки .git воспользоваться командой filter-repo, чтобы пересобрать заново все предыдущие коммиты так, как будто репозиторий изначально лежал в корне.
Исходная структура папок
public_html
└── wp-content
├── plugins
│ └── my_plugin
└── themes
└── child-theme
└── .git
Подготовим старый репозиторий к перемещению
git filter-repo --to-subdirectory-filter wp-content/themes/child-theme
Получим такую структуру
public_html
└── wp-content
├── plugins
│ └── my_plugin
└── themes
└── child-theme
├── .git
└── wp-content
└── themes
└── child-theme
Затем перенесём папку
.git и
всё остальное содержимое папки child-theme в корень сайта.