我的一位同事试图Diff.java
从我们的 GitHub 存储库的历史记录中永久删除一个文件 ( )。
他有充分的理由想要这样做,但是似乎出了点问题,因为我们似乎丢失了很多文件,这些文件已被后缀为.REMOVED.git-id
. 例如ivy-2.2.0.jar
-> ivy-2.2.0.jar.REMOVED.git-id
。
我已经设法修复了主要的开发分支,因为我碰巧在本地有一个副本。然而,有许多开发线的历史分支和发布的标签现在似乎以上述方式被破坏。
我了解他运行的过程类似于:
$ git clone --mirror git://example.com/some-big-repo.git
$ java -jar bfg-1.12.3.jar --strip-biggest-blobs 500 some-big-repo
$ cd some-big-repo
$ git reflog expire --expire=now --all && git gc --prune=now --aggressive
$ git push
$ cd ..
$ java -jar bfg-1.12.3.jar --delete-files Diff.java some-big-repo
$ cd some-big-repo
$ git push
我猜这个过程是破坏性的,除非在这发生之前我们碰巧在某个地方有一个干净的镜子,否则没有办法恢复。任何人都可以确认或提供一些建议吗?