我在提交时包含了一个文件,其中包含我的密码,我推送它,后来意识到我犯的错误。git-filter-branch vs. rebase + reset --hard + push --force
我明白git-filter-branch(或BFG Repo-Cleaner)帮助清理历史,然而,如何从做不同的...
rebase -i
- 移动致力于尖端,然后reset --hard [previous_commit]
- 应用此到回购,然后push --force
在可视化上述S的结果在SourceTree中,我没有看到以前的提交(及其内容),但我可以想象它可能会出现在其他人已经将错误提交的回购,或者甚至是新克隆的历史中。
那么与git-filter-branch相比,基本上有什么不同呢?我是否将苹果与橘子进行比较?
编辑:看起来像你可以做的步骤1 & 2上面一次使用rebase -i --autosquash [commit_hash]
。
最后我检查了一下,没有'git reverse --hard'这样的东西...你是不是指'git reset --hard'? – twalberg
“,但我可以想象它可能会出现在其他已经用错误提交回购了回购的人的历史中 - ”是的。 “甚至是新的克隆” - 不会。除非有一些其他参考历史包括该提交。 – jthill
@twalberg更正,谢谢! – webeno