2011-06-15 45 views
2

有點奇怪的問題,但這裏是我的場景:我不小心將一個帶有大型嵌入式PNG的SVG圖像添加到git中,提交併推送。昨天我注意到這個問題,並通過刪除嵌入的PNG來解決這個問題,因此該映像的大小從1500kb變爲35kb。我遇到的問題是我不再需要歷史版本(佔用1500kb的空間),但我需要在舊版本中存在一個映像(更新的映像)。所以我不想只是刪除圖像的歷史,因爲我希望舊版本仍然可以工作 - 我想要的是將新版本及時向後推送到我提交原始版本時,以便它像我從來沒有犯過這麼大的文件,只是正確的那個更小的文件而已。這可能嗎?如何用git中的最新版本覆蓋文件的歷史修訂版本?

我喜歡使用github託管存儲庫並需要推送更新的整個歷史記錄 - 這很容易嗎?

回答

4

如果你還沒有推動你的存儲庫給其他人,你可以輕鬆地用git rebase -i做到這一點。標記相關的提交進行編輯,然後根據需要替換圖像文件。

See the docs for more details

您可以使用-f選項git push這將強制您編輯的歷史覆蓋在Github上。但請注意,這可能會讓其他任何已經取消存儲庫的人變得有點混亂。

+0

謝謝,這似乎做我想做的,但其他人已經拉我推(錯誤是從幾個月前)。我想我現在只會放棄它,但在未來很高興知道這個作品,我應該在推動之前更好地檢查我的附加內容。 – Daniel 2011-06-17 13:33:52

1

我認爲你需要做一個相當混亂的操作,涉及挑剔,重新裝訂和一般的git wizardry。

我真的不會擔心它。保持原狀。這隻意味着每次回購克隆時您都會下載一次額外的千字節。否則,你只是推拉微小的差異......

相關問題