I would say it is a very bad idea to use themes as git submodules.
In theory, it might be a good idea: you could pick up changes to the theme simply by going down to the top level of the theme (where there will be a .git folder) and then just do git fetch to pickup changes.
But, do you WANT those changes? Maybe, maybe not.
Don’t in any case modify anything from the gitsubmodule! Why? Because you can’t commit it (it’s not yours–you’d have to do a pull request and you probably never intended to do that…) and you’ll have uncommited changes in your own repo for the hugo website.
You can’t fix this by changing the working set. You’ll have to remove the gitsubmodule from your repo. It is not good enough to just edit the .gitsubmodule file with a text editor. You need to git rm it with a few other steps. You’d need to get a non-repo copy of the theme and then git add it to make it part of your repo. See this nice post: https://stackoverflow.com/questions/1759587/how-to-un-submodule-a-git-submodule
If you are saying, “huh? whah?” to any of this, you really don’t want to do it.
If you are saying, “Well, of course–that’s how git works” then you might do this. The only reason would be if you want to modify/maintain the theme you have as a submodule while being able to test what you are doing with a hugo site. I’d still say this is an overly risky way to do that.
And don’t even do the clone thing. Github and build services like netlify and render, etc. will still see the theme as git submodule because it is a nested repo. But, it won’t work right because the .gitsubmodule file or corrrect entries there will be missing. Now, you could fork the repo of the theme and then clone it or submodule it into your own hugo site repo. But, unless you really want to make a lot of changes to the theme not sure why you’d want to. But, you would not have any problem making commits to your site’s rep that include changes to the theme because you own the fork of the theme.
Only if you really, really trust the developer of the theme to maintain it with real testing and careful commits would you want your build/deploy service to grab the theme from the theme maintainer’s repo.
Far safer to make a “snapshot”–an unlinked copy of the theme–and use that in your site and it’s git repo.
It’s plenty easy with Hugo to update themes. Just don’t modify them in place. If you want to change a a layout or stylesheet, just put it in your hugo website’s folders for layouts or assets. These take precedence over the theme. It’s genius. You leave the theme untouched. You can override things from the theme selectively. You can update the theme without losing your overrides (of course, no guarantee your overrides will still work if you update the theme–but they might).
I think the recommendation in the documentation should be changed and the advice to theme authors should be to NOT recommend git clone or git add submodule as a way to install.
It can certainly work. It just has some risks. Nearly all of the risks are mitigated if you NEVER make a local change to a cloned or submodule theme. And this is what most people would do. But, if you DO make a change and your site is its own repo, then you have a bit of a mess to untangle. Very quick to untangle but will require some smart cmdline git work (most git clients might not have the commands to do the cleanup).