これにより、MyABRepoがセットアップされます。もちろん、My12Repoも同様に実行できます。
git clone MyHugeRepo/ MyABRepo.tmp/
cd MyABRepo.tmp
git filter-branch --prune-empty --index-filter 'git rm --cached --ignore-unmatch DIR_1/* DIR_2/*' HEAD
.git / refs / original / refs / heads / masterへの参照は残ります。あなたはそれを取り除くことができます:
cd ..
git clone MyABRepo.tmp MyABRepo
すべてがうまくいったら、MyABRepo.tmpを削除できます。
何らかの理由で.git-rewriteに関するエラーが発生した場合は、次のことを試すことができます。
git clone MyHugeRepo/ MyABRepo.tmp/
cd MyABRepo.tmp
git filter-branch -d /tmp/git-rewrite.tmp --prune-empty --index-filter 'git rm --cached --ignore-unmatch DIR_1/* DIR_2/*' HEAD
cd ..
git clone MyABRepo.tmp MyABRepo
これにより、/ tmp / git-rewrite.tmpが作成され、の代わりに一時ディレクトリとして使用されます.git-rewrite
。当然、/tmp/git-rewrite.tmp
書き込み権限があり、ディレクトリがまだ存在しない限り、の代わりに任意のパスを置き換えることができます。