
Hi,
So basically, in something like perforce, I can group the files into changelists, and then forget about it until something is completely done and ready to commit. I understand I'm losing other features (small commits, being able to easily set it all aside, etc), but this is my common workflow.
If I understood your description correctly, you might want to look into using stacked git (stgit, http://www.procode.org/stgit/). I've found it convenient for what others have described as the local cycle for patch polish. Your git branch is set up to manage a patch stack, and you go back and forth between patches, transfer patches between branches, make amendments if you find bugs or typos, reorder patches, merge with patches submitted and included upstream, etc. The patch stack change history itself is also versioned, so if desperate you can go back and see what you did to break the code. If your version control use tends to be simple, and your upstream is happy enough to accept rebase-based history for pull requests, or just wants a patch not a git tree to pull from, you might find tools like stgit useful. It's still all git underneath so you can still do all the advanced stuff people have mentioned, if you discover you need to. Regards, Lassi