我按照GitHub 的说明从 git 存储库中删除敏感文件,因为我想删除一些不应该签入的二进制文件。
我第一次调用git filter-branch
命令失败了:
无法用脏工作目录重写分支。
因为我有本地的变化。因此,我用 隐藏了这些更改git stash
,并重新运行了 filter-branch 命令。
然后我按照 GitHub 说明运行了这些命令:
rm -rf .git/refs/original
git reflog expire --expire=now --all
git gc --prune=now
git gc --aggressive --prune=now
二进制文件的删除似乎完美无缺。但是,当我现在输入 时git stash list
,我在旧主服务器上添加的存储条目不会显示。
我所拥有的只是git stash
第二次执行 filter-branch 命令之前的输出:
Saved working directory and index state WIP on master: a19db18 LOG_MESSAGE
HEAD is now at a19db18 LOG_MESSAGE
此外,a19db18332b19ea41be888eccfc07e6680d8d6dd
是被重写的提交之一。
有没有办法检索隐藏的更改?