Is there anybody who has clear instructions on how to add a pre-commit hook that avoids changes to tags subdirectories?
I already searched the internet quite a bit.
If you are using JIRA, you can use the add-on named Commit Policy to protect paths in your repository without writing custom hooks.
How? Use the condition named Changed files must match a pattern.
It has an regular expression type argument that must match for every file in a commit, otherwise the commit is rejected. So, in your case you should use a regex that means "does not start with the prefix /tags/".
(You can implement many other smart checks with the same plugin.)
Disclaimer: I'm a developer working on this paid add-on.