For Photoshop, I would merely use internal layers, groups, or Smart Objects.
- Duplicate existing layers/groups, to create new layers/groups, make the change and title the new layers/groups appropriately. That way you have a single .psd file with all the changes within it.
Of course it kind of depends on file size and how extensive the changes are.
I deal with this a great deal where InDesign files are concerned. But at times I treat larger Photoshop/Illustrator projects this way because duplicating layers/artboards isn't feasible based upon the file itself.
So, I use.....
.... file naming and OS directory structure. Each file is dated in the file name: Client_Project_Spec_17-10-18.sfx
(client_project_versionidentifier_yr-mnth-day.sfx). The 'versionidentifier' would be something like "green" or some other unique aspect which may be needed to identify the versions. it's not always necessary. I only use it when it's helpful.
Then I use a directory structure:
[ Client ]
[ Project ]
[ Client Files ] -- stores anything the client has sent me regarding project
[ Version A ]
__yr-mt-dy.indd
__yr-mt-dy.pdf
__yr-mt-dyPDFx.pdf
[ Older ] -- stores older version of .indd and pdf files
[ Working ] -- stores custom graphic links for the .indd file
[ Version B ]
__yr-mt-dy.indd
__yr-mt-dy.pdf
__yr-mt-dyPDFx.pdf
[ Older ] -- stores older version of .indd and pdf files
[ Working ] -- stores custom graphic links for the .indd file
So, when I have a change to the .indd file, I copy the existing files to the Older
directory and then change the file name on the indd file to today's date.
That way the directory has the "live" versions at the top level, but should I need to refer to an old version, it's in the Older
directory.
This does all get backed up nightly. And since I'm copying and moving files, it can often mean the backup gets much larger than necessary due to file duplication. I will, yearly, erase and rebuild the backup to clear duplicate files. But I have triple redundancy backups... so I'll do one backup in Jan/Feb, then another in Jun/Jul, then the third in Nov/Dec. That way I pretty much always have a back up of anything I've done in a year should it be needed.
What I might do in your case, is create an InDesign file to configure the PDFs needed. Then place the .psd files in the InDesign file and set up layer visibility to show the various versions. Then you can open the InDesign file, double-click a link, make edits, save, the link updates, and export a PDF. This would certainly allow easier, visual, organization for me than a bunch of separate .psd files or a single .psd with a ton of layers would provide.
I always find it easier to option-double-click a link in InDesign to edit a file than to try and find that specific file in the OS file structure. It's easier to look at something and think "Yeah, that's the one I need to edit" for me. Then when it opens, I can note the specific file name for the link if needed.
This is all just general info. I assume there may be intricacies in your workflow that may or may not benefit from any of this. Truth is, unless I'm working on the same project with the same deliverables, it can be difficult to be definitive.
Beware of using name distinctions such as... "new" or "final". In my experience they are never actually that. There's always one more change. So you run into things like "New new" and "final final" or "new final" or "Final really", etc. Which doesn't do anything but confuse the matter. This is why I specifically place the date in the file name. If the file is worked on more than once in a day I use alpha characters, i.e. 17-10-18b, 17-10-18c, etc.