git-subtree(1) also allows splitting subtree.
git-subtree(1) uses plumbing git command, which is stable interface, unlike this one, which uses porcelain command.
IIRC, Git’s maintainer uses git-subtree(1) to merge gitk and git-gui to Git.