我想删除git存储库历史记录中既不是“ foo”也不是“ bar”的所有文件。鉴于此功能rm -rf !(foo|bar)
可删除当前目录中既不是“ foo”也不是“ bar”的文件。我提出了以下想法:
$ git filter-branch --tree-filter 'rm -rf !(foo|bar)' --prune-empty HEAD
但是,这产生了以下错误,我真的不明白为什么它不起作用。
Rewrite 75c1ec1ef083338ca2e88db9cc6107c1630d91e9 (1/871)~/libexec/git-core/git-filter-branch: 1: eval: Syntax error: "(" unexpected
参见https://stackoverflow.com/a/19957874/1870481
无论使用
--tree-filter 'bash preserve-only.sh foo bar'
与preserve-only.sh
存在
IFS=':'
GLOBIGNORE="$*"
rm -rf *
或使用
--index-filter \
'git rm --cached -r -q -- . ; git reset -q $GIT_COMMIT -- foo bar' \
--prune-empty
最后一个特别好。Juste删除所有内容并恢复您想要的内容。:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句