Search code examples
gitrepositoryextract

Extract part of a git repository?


Assume my git repository has the following structure:

/.git
/Project
/Project/SubProject-0
/Project/SubProject-1
/Project/SubProject-2

and the repository has quite some commits. Now one of the subprojects (SubProject-0) grows pretty big, and I want to take SubProject-0 out and set it up as a standalone project. Is it possible to extract all the commit history involving SubProject-0 from the parent git repository and move it to a new one?


Solution

  • See http://git-scm.com/docs/git-filter-branch

    I think you need something like

    git filter-branch --subdirectory-filter Project/SubProject-0 --prune-empty -- --all
    

    in a clone of the repository.