2016-08-03 133 views
0

提交被推送到分支random-tests,其中包含一些意外的敏感信息。该分支不会再被使用,所以我只是强制从远程和本地删除,认为这将清除该分支中的任何提交。我错了。即使分支本身不存在,提交仍然存在。Git在第一次提交时删除分支时在远程分支上提交提交

这是该分支从master分裂出来之前的第一次提交。由于分支被删除并且是该分支上的第一个提交,我如何删除有问题的提交而不影响其他内容?

+0

您是否有权访问运行BitBucket的服务器?见https://confluence.atlassian.com/bitbucket/maintaining-a-git-repository-321848291.html – Owen

+0

你的意思是“提交还在那里”? – larsks

+1

“提交仍然存在”,你的意思是“无法访问”的提交?如果是这样,那么你可以简单地[垃圾收集](http://stackoverflow.com/q/1904860/211627)。 – JDB

回答

0

如果你仍然看到这些提交,那么他们不能只在那个random-tests分支上。总之,这里的一个选项:

这里说的是您最近提交的清单:

  • 错误提交
  • 好提交
  • 好提交

要清除从“坏的承诺” Git的历史记录,你可以运行git reset --hard HEAD~1,它会将树重置为一次提交,并忘记曾经存在的“错误提交”。

要多一点谨慎做到这一点,你可以改为运行git reset --soft HEAD~1,做一个git status去确保正确的文件是不分阶段,然后运行git reset --hard复位到下一个提交,这将是最近的“好承诺。'

可能不是最好的解决方案,但它应该工作。希望帮助&是有道理的!

更新: 由于您修改了Git历史记录,因此在将其推送到远程时会遇到问题,因此您必须执行git push origin branch -f才能强制启动。

+0

是的,他们的确在“随机测试”分支上。当我进入BitBucket时,他们不再显示分支。我可以查看它们的唯一方法是直接进入我们的Slack #commits频道中显示的链接,例如:https://bitbucket.org/ouraccount/app/commits/e4de5130xfc3e57b79111a87d336582a710bc04e – eComEvo

+0

另外,如何运行'git reset'当我无法拉出有问题的分支?此外,我想要删除的提交是该删除分支上的第一个提交。 – eComEvo