If you take your scratch project to opensource, you typically don't have the time to make sure not only the current version, but also every intermediate result is free of flaws someone else might dig up.
So: mv private opensource; git init; git remote add ...; git push
An artist also wouldn't hang every draft drawing beside his gallery piece...
I also "move quickly and break things" when prototyping, but always go back and clean things up so that each change is atomic and well documented. In practice, this is not a perfect process, but being disciplined about this is worth it. Otherwise, you might as well not use version control at all.
This is also my argument against squashing PRs into a single commit (unless it's really a single isolated change). Sure, it's convenient to do so, and you end up with a "clean" history, but having granular changes is worth the time and effort, and it's something you should strive to do in general.
Squashing PRs is correct. Why would you need to see the hundred commits that lead to one working set of changes. The final changes are all that matter.
Keeping a clean history of incremental atomic changes is the entire purpose of using version control. It's not just common courtesy that I as an entitled user feel like I'm "owed".
The same applies for PRs, but I won't get into it any further.
I feel like there's a vocal segment of developers who don't understand the benefit of atomic commits, and by extension, version control, and are strongly opinionated in favor of the lazy approach. Working with someone like that can be a frustrating experience.
But please continue to downvote me because you disagree. :)
This fact (nothing is owed you) is entirely independent from the squash-or-not debate.
Some open source projects are just that - open source. You get the source and nothing else. You are not owed anything and you are not invited to collaborate and contribute. And that’s fine. Fork it and do things your way.
The community would be much more pleasant and healthier if casual passersby were not demanding things be done a certain way without actually caring about or contributing.
Open source is about fostering a spirit of sharing and collaboration. If developers don't align with those ideals, maybe open sourcing their work isn't for them.
"Open source" is abused too often these days as a marketing term, or something to fluff up your CV with, when it should be anything but that.
You don't get to dictate how others work, sorry.
Are you suggesting I should have made this private information public? Or that I shouldn't have released the project at all?