You can always revert (i.e. undo in a new commit) the faulty commit. That will keep the history. This meme is not just about pushing straight to master, it’s about push --force which overwrites the remote branch completely, changing history.
Seems like storage use is quite intense, and RAM usage exceeds the 150MB that the docs mention too. For storage, I would probably try to use a cloud option (AWS S3?) to prevent having to replace/add disks all the time.
Although it’s starting to look like more and more of a hassle and not that much benefit so far.