No you don't manage and back up using images (you can of course). Instead you manage and back up diffs just like you would in any other language. You can do that from inside or outside the VM. From the outside, the VM writes it's changes to a change (diff or journal) file and you get to choose when and if you're going to commit those changes. You can use that file to make commits to your SCM.
The development workflow for Pharo is that every code change has a CI performs a bootstrap build of the whole system pulled from a git repository. Then your CI adds your production code on top of that.
Really? So we're back to "MyImage.img.bak.2.old.works", "MyImage.img.bak.3.works", "MyImage.img.bak.2.test"?
Now that is an experience I do not want to ever have to experience again.