我在提交時包含了一個文件,其中包含我的密碼,我推送它,後來意識到我犯的錯誤。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