我正在使用这个问题的答案将存储库的克隆剥离到我想要保留在该项目的衍生文件中的文件列表中。假设我想剥离除目录src/main
及其子目录之外的所有内容。因为我将有多个文件和目录,所以我使用--index-filter
而不是--subdirectory-filter
.
我认为以下应该有效:
git filter-branch --index-filter "git rm -r -f --cached --ignore-unmatch ↩
src/!(main)" --prune-empty -- --all
但我得到的只是
-bash: !: event not found
我尝试了各种不同的路径而不是src/!(main)
. 我总是得到确切的错误信息。这似乎是一个 bash 问题,因为该行也没有进入我的命令行历史记录?
也就是说,如果我有顶级文件A
,和B
,和子目录C/D
,我怎么能删除除了这三个东西之外的所有东西?