gitgithubgit-flow

What is the difference between git feature, release and hotfix?


I am new on git-flow. Want to know how the three topics are work actually and the difference between them?

On feature, I started it with:

git flow feature start features_name

Is this important to finish it after the start then publish these features?

I found when I published it, It disappeared from GitHub branches, but why?

Git flow has five types of branches:

+ The production branch
+ The develop branch
+ Feature branches
+ Release branches
+ Hotfix branches

Solution

  • feature: All features / new functions / major refactorings are done in feature branches, which branch off of and are merged back into the develop branch (usually after some kind of peer review).

    release: When enough features have accumulated or the next release time frame comes near, a new release branch is branched off of developing, which is solely dedicated to testing/bug fixing and any cleanup necessary (e.g. changing some path names, different default values for instrumentation, etc.).

    hotfix: If a major problem is found after release, the fix is developed in a hotfix branch, that is branched off of the master. Those are the only branches that will ever branch off of master.

    Note: Any commit in the master is a merge commit (either from a release or a hotfix branch) and represents a new release that is shipped to the customer.

    Please be aware that this model is mainly meant for a) big software projects that follow b) classic release versioning and c) have a separate QA team. Many popular repositories on GitHub follow a simpler model.