必须启动控制最初不在版本控制中的项目的版本。因此,如果我们要将repo升级到github,那么repo现在是17gb并且需要配对(该站点本身现在配对下降到大约600mb)。
基本上我们想要删除在完全将它与repo配对的过程中删除的任何内容。我找到了一个很棒的命令来查找每个已删除的文件。
git log --all --pretty=format: --name-only --diff-filter=D | sort -u
精美地列出文件。
现在,我如何将其输入到从历史记录中清除它所需的命令。沿着这些方向的东西。
git filter-branch --tree-filter 'rm -rf { file }' HEAD
我已经制作了回购的副本,所以如果我完全搞砸了就行了。
这是将所有文件循环到的正确命令吗?如果是这样,我该怎么做?
答案 0 :(得分:2)
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标志来filter-branch以删除旧的引用,每Purging file from Git repo failed, unable to create new backup