web-dev-qa-db-ja.com

履歴付きのGitでサブツリーをエクスポートする

Gitリポジトリに、独自のリポジトリに移動したいフォルダがあります。そのフォルダの履歴をフォルダと一緒に移動することは可能ですか?

私は以前、ただgit rm -r --cached subfolder/ その後 git initサブフォルダー上。ただし、履歴は新しいリポジトリにインポートされません。

64
matpie

git-filter-branch(1) から例を引用

Foodir /がプロジェクトルートであるかのようにリポジトリを書き直し、他のすべての履歴を破棄するには:

git filter-branch --subdirectory-filter foodir -- --all

したがって、たとえば、ライブラリサブディレクトリを独自のリポジトリに変えることができます。 filter-branchオプションをリビジョンオプションから分離する-と、すべてのブランチとタグを書き換える--allに注意してください。

94
jamessan