For major changes. I think of personal homepage overhaul/redesign. My first version was circa 2007?
For all of the updates since then is it one project with different branches or completed separate projects?
New Project or New Branch?
Putting a personal site through a major redesign, Just a new branch.
But How do you Keep Older Versions?
I don’t think you want older version as branches necessarily. But at the very least you should keep a zipped version of the release in the GitHub repo. When you create a release, GitHub will create these zip folder for you as noted in the docs (here).
Releases
Releases in public GitHub repo. Label with latest. Each release (example v3.0.0) has some screenshots and an assets section with zipped up source code (.zip and tar.gz)
Getting a list of commit messages between release
git log --pretty=format:%s <lastrelease>...HEAD --no-merges
Many scripts and plugins to help automate git semantic releases. Mike Miles has bash script you can use.
GitHub docs on releases here.
Michael Miles on GitKracken here
taniarascia.com
semver.org