开发者

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.

  1. Create a new branch
  2. Define a "tree filter" that rearranges a checked out copy the way you want, ideally as a separate script
  3. 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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜