senthil
senthil

Reputation: 349

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 repository. I want the history to be preserved in the new repository. How do I create this new git repository?

Upvotes: 8

Views: 1528

Answers (3)

Simon Richter
Simon Richter

Reputation: 29586

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.

Upvotes: 2

VonC
VonC

Reputation: 1323165

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.

Upvotes: 5

CharlesB
CharlesB

Reputation: 90276

You can clone it and keep the files you want; history will then be preserved.

Upvotes: -2

Related Questions