angularjs - 删除 Git 存储库中的文件但文件不存在
问题描述
问题是我已经手动删除了视频文件。该视频在我的仓库中的任何地方都不存在。我也试过了
git rm src/assets/video/Greensleeves
,它说fatal: pathspec src/assets/video/Greensleeves did not match any files
。
我怎样才能通过这个以便我可以提交/推送?
解决方案
尝试并应用新git filter-repo
的,它确实取代了旧的git filter-branch
或 BFG。
它有许多使用示例,包括基于路径的过滤,以便您src/assets/video/Greensleeves
在过去的提交中远程文件:
要保留这些路径以外的所有文件,只需添加
--invert-paths
:git filter-repo --path src/assets/video/Greensleeves --invert-paths
然后git push --force
(这确实会重写您的存储库的历史记录,因此请务必通知任何其他合作者)
因为它必须在一个新的克隆上完成:
- 不要触摸任何东西到您当前的克隆文件夹
- 创建存储库的单独克隆,您可以在其中执行过滤器存储库
- 在第二个克隆中,现在已清理(其历史中不再有大文件),从您的第一个 repo 导入您的工作
也就是说,对于第 3 点:
cd /path/to/second/clone
git --work-tree=/path/to/first/original/clone add .
git commit -m "Import work from first clone"
git push --force
推荐阅读
- sql - 在第二个分号之后和第一个连字符之前解析字符串的正则表达式
- java - 从 Java 运行带有参数的 python 脚本,作为 exe
- excel - 我的宏使文件变大,尽管它删除了信息
- mysql - MYSQL BETWEEN 运算符
- html - 如何在不滚动页面的情况下加载图像?
- javascript - React Native - CheckBox 无法取消选中“已选中”框
- three.js - 如何统一(相同大小的复选框)自定义方格纹理图像,应用于三个 Js 中加载的模型的所有对象?
- python - 在自定义 ansible 模块中隐藏变量输出
- javascript - 导入的类关系从一个到另一个
- java - ClassLoader加载的两个类,不能互相调用