How to subtree split in Git
Git subtree split extracts a subdirectory into a new branch containing only the commits that touched that path.
As the creator of CoreUI with over 25 years of version control experience since 2000, I’ve used subtree split to extract reusable libraries from monorepos without losing history.
The standard approach runs git subtree split --prefix to create a new branch, then optionally pushes it to a separate repository.
This preserves the complete commit history of the extracted code.
How to split submodules in Git
Splitting a Git submodule into multiple smaller submodules helps organize large codebases and manage dependencies more granularly. As the creator of CoreUI with over 25 years of version control experience since 2000, I’ve restructured numerous projects where monolithic submodules needed division for better maintainability. The recommended approach uses git filter-branch or git subtree to extract subdirectories into new repositories, then replaces the original submodule with multiple smaller ones. This preserves commit history while improving project organization.