我使用filter-branch的--subdirectory-filter選項拆分出一個Git存儲庫,除了將所有內容都提取到存儲庫的根目錄之外,它的工作很好。具有現有目錄結構的Git子目錄過濾器
我現在有
ABC
- DEF
- GHI
- JKL
- MNO
而這個命令的結果:
git filter-branch -f --subdirectory-filter ABC/DEF --prune-empty -- --all
生成此:
GHI
JKL
當我真正想要的是這樣的:
ABC
- DEF
- GHI
- JKL
我無法看到Git文檔中顯示保留(或設置)目錄結構的過濾器選項的任何內容,並且我無法找到命令,我可以在之後運行過濾以重新映射結構我想如何。
這可能嗎?
工作對我來說也是完美的。感謝您發佈它。我應該補充說這個命令不會替代'--subdirectory-filter'命令;你仍然執行它。這個命令替換了其他文檔推薦的'git mv * ...'命令。但如果沒有醜陋的大規模提交,就會產生'git mv'。 –
不幸的是,這並不適合我。我在Windows上運行git-bash,並且失敗說它找不到index.new($ GIT_INDEX_FILE.new)。我希望我可以使用這個解決方案。 –
@BerinLoritsch $ GIT_INDEX_FILE是一個環境變量,我使用的大多數工具都爲你設置; MsysGit和CygWin以及幾個用於Windows替代品的git bash。你準確的設置是什麼? – JRoughan