我的一個朋友指出我要Moving files from one git repository to another, preserving history。過濾器分支指令不適用於我,可能是因爲我的回購沒有分支機構?無論如何,我做的是:
git clone <git repository A url>
cd <git repository A directory>
git remote rm origin
git filter-branch --subdirectory-filter <directory 1> --
這給了我一個回購,只有在子目錄的變化。然後,我融入我的第二個回購這樣的:
git clone <git repository B url>
cd <git repository B directory>
git remote add repo-A-branch <git repository A directory>
git pull repo-A-branch master
git remote rm repo-A-branch
然後我用濾波器分支從主回購刪除子目錄:
git filter-branch --tree-filter 'rm -rf <bad subdirectory>' --prune-empty HEAD
最後我也跟着The power of Git subtree更新後的第二次回購添加到第一作爲子樹。