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.

  • Git log search igoring changes?
  • Re splitting a merged development branch from Master in Git
  • Clear git repository on Bitbucket?
  • Delete a merge commit from git
  • How to find whether a file is present in multiple branches in git
  • What is the correct address for an image in a markdown document in VSTS?
  • 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?

  • How to make a new branch on pull conflict?
  • How can I revert my local git repository to the state it has on GitHub?
  • Integrate Visual Studio online Git Repository to Android Studio 1.0.2
  • Redo part of an already committed merge
  • View the change history of a file using Git versioning
  • What is the correct command for performing a git-rebase in this scenario?
  • 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.