1. 程式人生 > >git大倉庫拆成若干小倉庫

git大倉庫拆成若干小倉庫

我們要把每個專案變成獨立的git倉庫,並且保留commit記錄。
根據1
專案原始檔案:
MyHugeRepo/
.git/
DIR_A/
DIR_B/
DIR_C/
DIR_D/
首先在MyHugeRepo的父目錄中執行:
git clone MyHugeRepo MyHugeRepo.tmp
cd MyHugeRepo.tmp
得到DIR_D的git倉庫:
git filter-branch --prune-empty --index-filter 'git rm --cached --ignore-unmatch DIR_A/* DIR_B/* DIR_C/*' HEAD


cd .. 返回 MyHugeRepo.tmp的父目錄
git clone MyHugeRepo.tmp DIR_D 重置refs

重複執行上述git clone等,將git filter-branch替換成下面的命令,得到DIR_C的git倉庫:
git filter-branch --prune-empty --index-filter 'git rm --cached --ignore-unmatch DIR_A/* DIR_B/* DIR_D/*' HEAD
依次類推