Myr*_*rys 33 git version-control binary-data
我不小心将一些大型二进制数据提交到了一些提交中.从那以后我更新了我的.gitignore,这些文件不再被提交了.但是我想回到旧的提交中,有选择地从存储库中删除这些数据,删除应该在.gitignore中的几个目录.我不想删除提交本身.
我将如何实现这一目标?我首选的方法是将.gitignore规则追溯应用于旧提交的某种方式...使用此方法的答案对其他人来说也非常有用,因为我确信我的问题不是唯一的.它也可以快速应用于通用解决方案,而无需针对每个用户的唯一目录结构进行大量自定义.
这是可能的,无论是我上面提出的简单方法,还是以更复杂的方式?
小智 12
这个答案中的解决方案对我来说非常有效:
你也可以用一个测试你的清洁工艺像BFG回购清洁工具,在这个答案:
Run Code Online (Sandbox Code Playgroud)java -jar bfg.jar --delete-files *.{jpg,png,mp4,m4v,ogv,webm} ${bare-repo-dir};(除非BFG确保它不会删除最新提交中的任何内容,因此您需要删除当前索引中的那些文件并进行"干净"提交.所有其他先前的提交将由BFG清除)