How do I create a new git repository from a folder in an existing git repository?
I want to create a new git repository of a folder under an existing git reposi开发者_运维问答tory. I want the history to be preserved in the new repository. How do I create this new git repository?
You can clone it, and then apply on the clone a filter-branch in order to split that repository, extracting only the directory you want (with its full history).
See Detach subdirectory into separate Git repository
Note the git clone --no-hardlinks /XYZ /ABC
used during the cloning step:
The
--no-hardlinks
switch makes git use real file copies instead of hardlinking when cloning a local repository.
Assuming you only want to keep the subdirectory as a separate project: you can use git filter-branch
for that.
- Create a new branch
- Define a "tree filter" that rearranges a checked out copy the way you want, ideally as a separate script
- Run
git filter-branch --tree-filter=/path/to/script thebranch
You now have a separate branch that is not related to the normal development stream, containing just the subdirectory. Whoever clones the new branch gets only the subproject history.
You can clone it and keep the files you want; history will then be preserved.
精彩评论