This is probably a duplicate, but after going through the GitHub help page about creating releases, and going through many posts on SO, I haven't found what I am looking for.
I have worked with git for a while, and I often find myself in a situation where parts of the contents in master
are ready to be shared, but others still need to be refined, further tested or refactored. I can create a new branch and remove what I don't want to release just yet, but that still preserves their history, and for the next version, I won't be able to simply merge improvements along with a subset of new contents without starting over essentially with a brand new branch every time.
What I really would like to do is select folders and files which are ready to be released, filter relevant history for these files only, and rebase any content which is not in the release on top of this new history. I realise that this is a form of "rewriting history", but is there any way to do this with git? And if not, what is the "proper" way of creating releases with a relevant history and which can be merged upon later on?