I have a branch that I'd like to move into a separate Git repository, and ideally keep that branch's history in the process. So far I've been looking at git filter-branch
, but I can't make out whether it can do what I want to do.
How do I extract a Git branch out into its own repository?
You can simply push a branch to a new repository. All of its history will go with it. You can then choose whether to delete the branch from the original repository.
e.g.
git push url://to/new/repository.git branch-to-move:new-branch-name
For a new repository, new-branch-name is typically master.
Creating a new, empty repository can be done with git init
.
This will keep the history of all the branches, but make your copy point to the one branch in particular:
git clone -b newbranch CurrentRepo NewRepo
This does not 'move' anything, just makes a copy.