EVERYTHING I do is done with well organized directories. To set a milestone I have a batch file or shell script (Same thing, different OS) that just makes a new directory with the same base name but with the date and time attached as part of the filename, and then makes a copy.
... and as to uploading, I have client side script that does a DB dump (if needed), I go into filezilla, upload the directory, log into the shell and apply the DB dump (if needed).
Though in most cases the DB transfer isn't done because test data differs from live data.
It's not rocket science, it's only a handful of steps, and I don't really get why people need some sort of fancy "tool" to handle it.
Honestly if you can't maintain logical directory structures, creating milestones, and handling uploads? Well, might be time to review career choices.
But then I learned to do all this stuff decades before Git was a twinkle in Linus' eye... from a time where project managers ACTUALLY MANAGED THE PROJECT by doing what Git does... As well as actually being present for all cross communication between coding teams, handling code conflicts, and handing out tasks to each section with full supervision.
Unlike today where ALLEGED "project managers" spend their time time sucking up to the brass, scheduling meetings where meetings are scheduled, spewing marketspeak doubletalk worthy of a round of bullshit bing, and playing farmville than they do actually managing a damned thing.