团队成员为git添加了数百个megs

时间:2012-12-30 22:51:04

标签: git extra

  

可能重复:
  How can I remove a commit on github?

因此,我们项目的团队成员已经承诺并向我们的git项目存储库推送了700多万个废话...她认为她只添加了2个图像,但不知何故最终将她桌面的全部内容复制到git文件夹,并以某种方式提交它。我不知道为什么她认为2张照片上传20分钟并不奇怪...

无论如何,我现在处于这个项目负责人的困境中。就我而言,我有两个选择,我不喜欢任何一个

  1. 我可以从bitbucket中删除存储库,然后使用我想要的文件重新启动它。这将删除所有以前的编辑,因为只有我想要的文件的当前版本可用

  2. 我可以删除错误的数据并推送更改。只有我们想要的文件才会被进一步管理,但是她放在那里的所有额外的麻烦将永远存在于git中,我们的项目将100倍膨胀。

  3. 有没有办法永久删除提交,就好像从未发生过一样?除了更多的补救性git训练之外,管理这种打嗝的最佳方法是什么......

2 个答案:

答案 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