git - 撤消 git 过滤器分支

标签 git

我不小心从我的仓库中使用 git filter-branch 删除了一个文件:

git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch images/thumb/a.JPG' HEAD

我该如何撤销?可能吗?即文件是否被永久删除?

最佳答案

当你使用git filter-branch时,会在

中创建一个备份文件
refs/original/refs/heads/master

如果您在分支 master 中使用了命令。您可以检查是否在 .git/refs 目录中有备份。考虑到这一点,您可以使用此备份来恢复您的文件:

git reset --hard refs/original/refs/heads/master

关于git - 撤消 git 过滤器分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14542326/

相关文章:

android - 每当我在 git 中提交时,如何清除 $HOME/.gradle/caches/?

git - 如何从 Git 中提取历史的子集?

git - 如何在服务器上的 bitbucket 和 git 中建立信任关系

windows - Git 推送不起作用,但 "git clone"和 SSH 起作用

git - 无法从远程克隆 repo - ssh key 识别错误

ruby-on-rails - Rails - Heroku - Git - 使用 os x 10.6.5 连接到 repo 时出现问题

git - VSCode 源代码控制不工作,而 VSCode 终端 Git 工作

git 失败时尽量打补丁

公司网络上的 git SSL 问题

Git "server",通过 SSH key 管理访问