因此,我们项目的团队成员已经承诺并向我们的git项目存储库推送了700多万个废话...她认为她只添加了2个图像,但不知何故最终将她桌面的全部内容复制到git文件夹,并以某种方式提交它。我不知道为什么她认为2张照片上传20分钟并不奇怪...
无论如何,我现在处于这个项目负责人的困境中。就我而言,我有两个选择,我不喜欢任何一个
我可以从bitbucket中删除存储库,然后使用我想要的文件重新启动它。这将删除所有以前的编辑,因为只有我想要的文件的当前版本可用
我可以删除错误的数据并推送更改。只有我们想要的文件才会被进一步管理,但是她放在那里的所有额外的麻烦将永远存在于git中,我们的项目将100倍膨胀。
有没有办法永久删除提交,就好像从未发生过一样?除了更多的补救性git训练之外,管理这种打嗝的最佳方法是什么......
答案 0 :(得分:2)
我愿意
$ git checkout master~1 -b newmaster
$ git branch -D master
$ git reflog expire --expire=now --all
$ git gc --prune=now
$ git checkout -b master
$ git branch -D newmaster
gc应该做垃圾收集。我想你可以在服务器上这样做。
答案 1 :(得分:1)
我不知道bitbucket是否允许它,但你可以这样做:
git reset HEAD~
# Or the SHA of the version before the huge commit
git push --force