I'm relatively new to Git. I am a sole developer, so I'm trying to keep my Git structures relatively simple, but still effectively utilize Git's features when it makes sense.
I have a situation where I am working on a new feature branch, say v2.0. That version is currently in QA undergoing testing with no current ETA for test completion.
The client now wants new functionality relatively urgently, which I'm going to setup on branch v3.0. But at this point, I don't know for sure if the v2.0 release will be deployed to production before the client chooses to release v3.0.
So I'm going to have to maintain two feature branches and don't yet know which will release first. Is there a process or best practice to maintain the branches in Git in this scenario?
I'm currently guessing that it makes sense to have a separate v3.0 branch that is not dependent upon v2.0. Is that the best approach?
master <-- v2.0
master <-- v3.0
I would therefore code v3.0 without any of the v2.0 changes present, assuming that v2.0 won't be released first. If v2.0 does get released first, then I'll have to quickly merge all of the v2.0 changes into v3.0.
Open to feedback.