Git在第一次提交时删除分支时在远程分支上提交提交
问题描述:
提交被推送到分支random-tests
,其中包含一些意外的敏感信息。该分支不会再被使用,所以我只是强制从远程和本地删除,认为这将清除该分支中的任何提交。我错了。即使分支本身不存在,提交仍然存在。Git在第一次提交时删除分支时在远程分支上提交提交
这是该分支从master
分裂出来之前的第一次提交。由于分支被删除并且是该分支上的第一个提交,我如何删除有问题的提交而不影响其他内容?
答
如果你仍然看到这些提交,那么他们不能只在那个random-tests
分支上。总之,这里的一个选项:
这里说的是您最近提交的清单:
- 错误提交
- 好提交
- 好提交
要清除从“坏的承诺” Git的历史记录,你可以运行git reset --hard HEAD~1
,它会将树重置为一次提交,并忘记曾经存在的“错误提交”。
要多一点谨慎做到这一点,你可以改为运行git reset --soft HEAD~1
,做一个git status
去确保正确的文件是不分阶段,然后运行git reset --hard
复位到下一个提交,这将是最近的“好承诺。'
可能不是最好的解决方案,但它应该工作。希望帮助&是有道理的!
更新: 由于您修改了Git历史记录,因此在将其推送到远程时会遇到问题,因此您必须执行git push origin branch -f
才能强制启动。
您是否有权访问运行BitBucket的服务器?见https://confluence.atlassian.com/bitbucket/maintaining-a-git-repository-321848291.html – Owen
你的意思是“提交还在那里”? – larsks
“提交仍然存在”,你的意思是“无法访问”的提交?如果是这样,那么你可以简单地[垃圾收集](http://stackoverflow.com/q/1904860/211627)。 – JDB