【发布时间】:2013-08-01 12:01:52
【问题描述】:
我正在将存储库从 svn 迁移到 git。
在最后一步中,我想从历史记录中删除大量不需要的文件。
我正在尝试以下命令:
git filter-branch --prune-empty --index-filter \
"for file in $(cat files); do git rm -rf --cached --ignore-unmatch ${file}; done" -f
但是它说参数列表太长了。
我可以这样重写:
for file in $(cat files); do
git filter-branch --prune-empty --index-filter \
"git rm -rf --cached --ignore-unmatch ${file}" -f
done
但它会运行 filter-branch 很多次,而且历史很长。所以,它会花费太多时间。
有没有更快的过滤分支删除大量文件的方法?
【问题讨论】:
-
你可以考虑在svn 2 git期间拆分git吗?我基本上是在要求存储库重构
-
我做到了。但回购仍然太大。我的同事过去常常将二进制文件提交到 SVN,比如 jBoss、JDK 和其他东西……真是一团糟……
-
@caarlos0 您是否阅读了那里有关使用
filter-branch删除大量文件的方法的答案?你试过了吗? (有不止一种方法)。你尝试了哪些?您是否看到任何错误消息或其他指示它们可能失败的原因? -
我已经尝试了几种方法...没有一个有效,出现“找不到文件”和奇怪的语法错误之类的错误...无论如何...也许我会等待我的
for结束。 .
标签: git git-filter-branch git-rewrite-history