我意外地将我的.idea目录中的文件推送到我的.gitignore文件中的Django项目中。我正在尝试从我的bitbucket存储库中完全删除提交,因为我正在处理该项目的其他人,他不能在不影响他自己的.idea文件的情况下提取我的更改。我已经看到其他SO问题,他们说使用git revert,但是我记得有另一个命令,你推动了你做的最后一个好的提交,之后的所有内容都从master分支中删除。例如
提交历史记录:
94ca48e
55fab05
3813803
我想删除94ca48e和55fab05。有一个命令我找到了一个你可以使3813803成为最新的提交,并且该提交后远程存储库中的所有内容都将被删除,但我无法在任何地方找到它。
答案 0 :(得分:19)
使用git reset --hard 3813803
。 无法撤消,无论是本地还是远程工作。
使用git push --force origin master
查看Atlassian here的git文档。
我也可以从那里引用:
虽然恢复旨在安全撤消公共提交,但git reset旨在撤消本地更改。由于它们的目标不同,这两个命令的实现方式不同:重置完全删除变更集,而恢复则维护原始变更集并使用新的提交来应用撤消。
git reset
是这里使用的,因为你要求完全删除。
答案 1 :(得分:0)
即使对提交进行了硬重置,不需要的提交仍会显示在历史记录中。如果还需要重设历史记录,那么恐怕唯一的方法就是删除并重新创建分支。