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.
It says that the repository has 2 main branches called
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?
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
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
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
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.
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.
develop branch is a normal branch off of
git branch develop creates the
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.