-2

After reading the docs for git flow I am expected to know about some completely undefined "production release" but I have no idea what it is and it is completely undefined.

They expect me to answer the following:

Branch name for production releases: [master]
Branch name for "next release" development: [develop]

What is a "production release" ? Is it just something that you decided is a version of the code? What is a "next release" ? How can they expect me to know?

If a release is branched off develop, why is git flow default master as branch name for production releases? How does it make a tiny bit sense? It seems just a big mess that sombody cooked to look like they are working.

Niklas Rosencrantz
  • 25,640
  • 75
  • 229
  • 424
  • 1
    A [simple search for "git flow"](https://www.google.com/search?q=git+flow&oq=git+flow&aqs=chrome..69i57j69i60l3j0l2.1135j0j7&sourceid=chrome&ie=UTF-8) has a number of hits that should answer that question for you. – crashmstr Nov 21 '17 at 13:25
  • @crashmstr The more I know the less I know. I know that a release branch is based on develop branch. The why is the branch name for a "production release" master? This time I dont' understand anything and I'm certain that they did it on purpose when they could have created an intuitive system. – Niklas Rosencrantz Nov 21 '17 at 13:33
  • I've found it to be common to call the version(s) that are out and available to users are "in production". Thus, a "production release" is a version of the code that is released out to the users (deployed to production servers, available to download, etc.). GitFlow sets up a specific branch to represent those versions of the code that are "in production". – crashmstr Nov 21 '17 at 13:36
  • If GitFlow is more complicated than you need, you don't need to use it and you can figure out your own strategy for organizing your code changes. GitFlow is just "one way" of many to organize your git changes and workflow. – crashmstr Nov 21 '17 at 13:39
  • See https://www.atlassian.com/agile/branching – JDB Nov 21 '17 at 15:21

1 Answers1

-1

Git allows you to maintain your code and save all the history of the code. When you start creating your code, you move forward with making commits. It is natural that, once some commit is made, the code needs to be tested. Test and development are two parallel processes (theoretically) and are done by two different person. As a result development phase will be in advance of commit phase. In addition, you also have to fix bugs if any are found with your previous commit. For example, when you are in your 5th commit the tester may be able to test only to commit 3, which has no bugs. So at this stage you will able to deploy (release) only to commit 3.

There are many ways you can keep this information in git. Creating a branch from commit 3 is one solution where you name that branch release, and the name of the other branch will be named as development. I Personally use tag for the commit.

jrmullen
  • 346
  • 5
  • 21
Md Monjur Ul Hasan
  • 1,705
  • 1
  • 13
  • 36