./.git过滤器分支尝试未完成后,git重写文件



我有两个本地存储库(比如A和B(和一个远程存储库。不幸的是,我在a中添加了一个巨大的文件夹并推送了它。由于我想把它拉到第三个本地存储库C(我的笔记本电脑(中,这已经不可行了。然后我想撤消在A中添加大文件夹的操作,并尝试了一个git filter-branch'命令,由于超过了磁盘配额,该命令以错误终止。现在,当我在A中运行du -h时,它会显示几个./.git-rewrite文件,即使我在添加大文件之前签出了提交。

现在-有什么方法可以撤消git filter-branch命令吗?(我怀疑git历史记录中有一些更改,我不想冒任何损坏的风险(,因为那时我会使用git分支中的Delete提交来清除文件夹,并迫使远程用户也忘记它。由于B落后了几次提交,所以我只将其用作最后一个选项。

这对reflog来说是一个很好的用途!

运行git reflog将为您的存储库提供一个修改列表,如下所示:

8730047 (HEAD -> master) HEAD@{0}: filter-branch: rewrite
30b6014 (refs/original/refs/heads/master) HEAD@{1}: commit (initial): test
(END)

这里最重要的一项是我刚刚在自己的存储库中运行的filter branch命令。为了撤消它,我可以运行git reset --hard HEAD@{0},它会将我重置回初始提交(标题为test(。

最新更新