When developing your own library of code, such as:
- code you are experimenting with or testing
- some code you routinely cut and paste (utilities)
- samples that help illustrate cool solutions (model code)
... you'll want to make improvements as you learn more.
Improvements lead to new problems[]
Saving something that works at a certain stage--then branching out--is what coding is.
Vesioning is the way preserve your work and stay sane.