I've been reading, I've known for some time that Git flows exist . I understand this flow more or less well, but now I have found out that Github flow is not the same as the previous flow ?. I know that Git flows proposes master (production), develop, features/*, hotfix/* and release branches. I have entered the Github flows guide but I have not fully understood how it works.
I was wondering what is the difference between the two or, in effect, what is github flows? I have seen that there are many articles in English, but nothing in Spanish.
The simplicity.
git flow
In git-flow several branches are managed with different objectives, for example, there is a development branch, a release branch , one or several branches for features, for patches, etc.
The flow indicates that you start with one or more features, then move on to develop, then master, and then release.
Each stage of this cycle carries the same process of pull request , merge with the next immediate branch .
This means that when a feature is ready, it is merged into the development branch. Once all the desired features for a release (for example) are ready, the development branch is merged with the master branch. At the end a new version is released in the release branch .
GitHub flow
On GitHub there is a principle about the master branch that says: the master branch always works .
Furthermore, it makes use of tags (a specific point in some branch) and a release feature that is a snapshot of the selected tag , which allows you to create these releases easily.
Although the request -> review -> merge process exists in GitHub Flow it is simpler, because they don't go through consecutive development branches.
GitHub proposes that all development branches go to master once approved and that releases be done via release tags and snapshots .
Git-flow is a process for managing changes in Git that was created by Vincent Driessen and accompanied by some Git extensions to manage that flow.
The general idea behind git-flow is to have several separate branches that always exist, each with a different purpose: master, develop, feature, release, and hotfix.
The process of developing features or bugs flows from one branch to another before finally being released.
Some of the respondents indicated that they use git-flow in general. Some started with git-flow and moved away from it.
The main reason for moving away is that the git-flow process is difficult to manage in a continuous (or near-continuous) deployment model. The general feeling is that git-flow works well for products in a more traditional release model, where releases are made once every few weeks, but that this process breaks down considerably when you're releasing once a day or more. .
You start with as simple a model as possible (as GitHub-flow tends to be), and work your way up to a more complex model if necessary.
You can see an interesting illustration of a simple workflow, based on GitHub-Flow at: "A Simple Git Branching Model", with the main elements being: