--- title: Extracting a custom module with a Git subtree date: 2024-09-04 20:12:00 tags: [Git] --- To extract a directory from a repository and keep the history, you can use the `git subtree split` command to create a new branch: ```shell git subtree split --prefix=web/modules/custom/my_module --branch=split Created branch 'split' 17835f24069061326e9e065f076afd67434e1b2f ``` This will create a new branch with just the contents of the given directory. This can be pushed to a different repository: ```shell git push git@github.com:opdavies/new-repo.git split:main ```