Considering that you already have master
, develop
and feature
branches, it sounds to me that you are following the GitFlow Workflow. In that case, if you are working on some fixes or improvements to the last release, you could create hotfix
branches, which are forked from master
branch. Quoting from the Hotfix branches topic on the previous link:
Maintenance or “hotfix” branches are used to quickly patch production releases. Hotfix branches are a lot like release branches and feature branches except they're based on master instead of develop. This is the only branch that should fork directly off of master. As soon as the fix is complete, it should be merged into both master and develop (or the current release branch)...
This is just a suggestion for the GitFlow kind of branching model, that you can use while you stabilize the develop
branch again.
The only reasons that I can think of to avoid creating a feature branch from another feature branch is trying to avoid forking from unstable branches (which is not your case), and to try to keep the history a little bit clean while following GitFlow or a similar workflow. But that is relative, because what you have at the end of the day on Git are linked commits instead of clear branches. Also, there is no real limitation to keep you away from forking feature
branches from any branch/commit in your repo.
About your develop branch, in order to stabilize it, I would recommend to revert all the commits until the last known stable commit on develop
, and then merge
the head of master
into the develop
branch, if you are sure that master
is stable. It probably won't look pretty on the Git history, but may do the job. Be careful and don't push the changes until you are sure about them.