How does a Git repository works with a develop and master branch?

I’m new to Git and this is really confusing. I wanted to start off developing a web application on Git and so far I’ve been dealing with troubles that have kept me behind.

I’ve read this blog post on a successful branching model for Git. I was really interested in setting up something similar to this.

  • How does merging conflicts in Git compare to merging conflicts in Subversion?
  • Cordova Custom Plugin “Arguments to path.join must be strings”
  • git log for a portion of a file
  • How to setup PC and Mac for using git
  • How to download a folder from github?
  • How to pull specific directory with git
  • It says that the repository has 2 main branches called master and develop. So I went ahead and created a repository. However, to my surprise, the repository itself was the default master branch. How was I supposed to create a develop branch? Do I create it in the parent of the master branch? That would mean that the develop branch is outside the repository.

    Am I getting something totally wrong here? Do I just ignore the fact that I’m creating two branches inside the master branch?

  • simplest way to download tip/head revision from a sourceforge git repository?
  • Git (Windows) - failure cloning from a separate-git-dir repository
  • Rebasing a Git merge commit
  • How to move HEAD back to a previous location? (Detached head)
  • Alias to open git conflicts in textmate
  • openshift + wordpress + git
  • 2 Solutions collect form web for “How does a Git repository works with a develop and master branch?”

    A branch is not a directory. It is a commit label that moves along with commits, like tag is a commit label that stays with a particular commit. You will not have anything “inside” the master branch, rather master and develop will both initially label the same commit.

    Create the develop branch like so:

    git branch develop

    To clarify: let’s say you have the initial commit A. It will be labeled as master branch.

    git init
    A [master]

    If you make a new commit B, the branch label will move:

    git commit -a
    A -> B [master]

    If you then branch into develop, the B will get the new label as well:

    git branch develop
    A -> B [master, develop]

    If you commit on the develop, it will move, but master won’t:

    git checkout develop
    git commit -a
    A -> B [master] -> C [develop]

    If you now commit on the master, the tree will fork:

    git checkout master
    git commit -a
    A -> B -> C [develop]
         +--> D [master]

    Meanwhile, you only have in your directory whatever the contents of your current commit is. Switch branches, and the directory contents change.

    The master branch is created by default; you can think of it like the “trunk” in other VCS systems. The develop branch used in the nvie branching model branches from master, presumably from the first commit.

    The develop branch is a normal branch off of master.

    git branch develop creates the develop branch.

    In the nvie branching model, all development work is done on the develop branch and only merged to master and tagged there when the code is ready to be released. The typical workflow that many people use is just to commit all development to master and tag when the code is ready to be released.

    Git Baby is a git and github fan, let's start git clone.