我需要删除一个160mb的视频文件,在几次提交前,在当前提交中它不再存在,搜索我发现以下命令git filter-repo --force --path myapp/app/src/main/res/ raw/intro.mp4在执行我的提交时消失了,就好像我回到了这个文件的提交,其余的都不见了,有人能向我解释发生了什么事,我如何才能恢复我的项目?使用这个命令,我希望从我的git历史中删除特定的文件,但发生的是删除我在该文件之后所做的一切。
git filter-repo --force --path myapp/app/src/main/res/ raw/intro.mp4
rxztt3cl1#
发生什么事了?有一个--invert-path选项,它将--path转换为排除列表。不幸的是,你在问题中提到的命令做了相反的事情:只保留那个mp4文件在你的repo的历史记录中。如何恢复我的项目?检查你的reflog:git reflog或git reflog my/branch,但很可能是git filter-repo清空了它。你的下一个选择是检查你是否提到了你的一个原始提交的SHA(在你的终端窗口的更高位置?在日志消息中?),或者运行git fsck来查看你可以恢复的提交。
--invert-path
--path
git reflog
git reflog my/branch
git filter-repo
git fsck
1条答案
按热度按时间rxztt3cl1#
发生什么事了?
有一个
--invert-path
选项,它将--path
转换为排除列表。不幸的是,你在问题中提到的命令做了相反的事情:只保留那个mp4文件在你的repo的历史记录中。
如何恢复我的项目?
检查你的reflog:
git reflog
或git reflog my/branch
,但很可能是git filter-repo
清空了它。你的下一个选择是检查你是否提到了你的一个原始提交的SHA(在你的终端窗口的更高位置?在日志消息中?),或者运行
git fsck
来查看你可以恢复的提交。