Hey allocaters!
In this occasion, I'd like to explain about GitFlow. Once, I thought Git Flow is just a term about a flow for development about Git. It turns out that GitFlow is a term about branching model for Git, created by Vincent Driessen. It was very popular that it has attracted a lot of attention because it is very well suited for collaborating in developing a project/product.
What makes it special is that it makes developing parallel so easy. The new development like features is done in feature branches and will be merged into the main body of code if and only if the majority of the developers are satisfied that the code is ready for release.
Moreover, feature branches make developer teams easier to collaborate. Why? They can easily see what each others' doing because each feature branch is basically a sandbox which the only changes are to get the new feature working.
As new development is completed, it will be merged back into the branch named develop. Develop branch is a staging area for features that completed but haven't released yet. Hence, when the next release off from develop branch, it will automatically contain all of the new stuff that has been finished.
GitFlow also has hotfix branch which is made from a tagged release. This branch is used to make an emergency change. So, there's no risk that it'll be accidentally merged in the new development at the same time.
The flow of GitFlow are:
- New features are built in feature branches.
- Feature branches are child of develop branch and when it finished and ready to release, it will be merged back into its parent branch, which is develop branch.
- When it's release time, a release branch is created from develop branch.
- The code in release branch is deployed onto test environment, tested, and any problems are fixed directly in the release branch. When the release is finished, the release branch is merged into master and into develop branch too. So that any changes made in release branch aren't lost by new development.
- The master branch tracks only release code. The only commits to master are merges from release branch and hotfix branches. Hotfix branches are used to create emergency fixes.
- They are branches directly from a tagged release in the master branch, and it will be merged back into master and develop branch when finished to make sure the hotfix isn't accidentally lost when the next regular release occurs.
So, that's all about GitFlow. I recommend you to use GitFlow for your development team. Thanks for reading, I hope all I explained above useful for your development team.
Reference:
https://datasift.github.io/gitflow/IntroducingGitFlow.html
0 komentar:
Post a Comment