必须启动版本控制最初不在版本控制中的项目。 因此,存储库现在是 17GB,如果我们要将存储库连接到 github,则需要配对(站点本身现在配对到大约 600mb)。
基本上,我们希望从存储库中完全删除在配对过程中删除的任何内容。 我找到了一个很棒的命令来查找每个已删除的文件。
git log --all --pretty=format: --name-only --diff-filter=D | sort -u
它漂亮地列出了文件。
现在,我如何将其管道连接到从历史记录中清除它所需的命令。类似的东西。
git filter-branch --tree-filter 'rm -rf { file }' HEAD
我已经制作了存储库的备份副本,所以如果我完全搞砸了,一切都会好起来的。
这是将所有文件循环到的正确命令吗? 如果是这样,我该怎么做?
好的,xargs 需要一点帮助。我们需要每行使用一个,但替换为该过滤器分支命令:
git log --all --pretty=format: --name-only --diff-filter=D | sort -u | while read -r line; do git filter-branch -f --tree-filter "rm -rf { $line }" HEAD; done
我们还必须指定 -f 标志来过滤分支以删除旧的引用,每个 从 Git 存储库中清除文件失败,无法创建新备份