所以我對我的一個 git 專案做了一些愚蠢的事情。我不小心提交并推送了一個不應該簽入 Git 的 svg 資產目錄(約 2000 個 svg 檔案)。我洗掉了資產,然后再次推送以將其從源代碼中洗掉,但是我不確定如何將其從我的 git 提交歷史記錄中洗掉。
- 17a3534 - 最后一次有效提交
- 2129212 - 有效更改 無效的 SVG 目錄
- 9c41416 - 洗掉了無效的 SVG 目錄
我不完全確定如何解決這個問題,我基本上想用 2129212 的未決更改恢復到 17a3534,這樣我就可以洗掉 SVG 目錄并且在 git 提交歷史記錄中沒有任何 .svg 但保留有效的更改在 2129212 提交中。
關于我將如何做到這一點的任何想法?
如果我可以在本地修復它,我不介意強制推送并覆寫遠程服務器。

uj5u.com熱心網友回復:
按照戴的評論中的建議:
git reset --soft 2129212
# at this point you'll have all of the svg files staged for deletion
git commit --amend
# now you'll rewrite this commit with only the valid files committed
git push --force-with-lease
旁注:在 Git 中,revert一詞的含義與英語中的含義略有不同。Gitrevert將通過創建一個撤消原始提交中更改的新提交來有效地撤消提交。這通常是撤消更改的首選方法,因為它使您能夠推送到共享分支而無需重寫它。正如您所見證的那樣,缺點是它不會清除歷史。如果您希望重寫歷史記錄,而不是 revert,您可以使用例如reset,rebase或修改提交,所有這些通常都需要在之后強制推送。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/521448.html
標籤:混帐
