I suggest to read http://hginit.org.

The first section title is "Subversion Re-education". You can also read the 
rest; mercurial and git are very similar.

In Subversion, tags and branhes are really just specially named 
directories. In git, they are two different things. It does not take long 
to fall in love with them as they work better than in Subversion. (ie: they 
do not change the repository revision number just because you create a tag 
or a branch)

To begin with git, start with a very simple workflow. The book git-pro 
gives very good starting points. In my team (2 to 5 developers), we are 
still using a single branch during development (named dev) who exist only 
on the developer PC and we rebase it on the tip of master before pushing 
the commits on the server. That way, the history is made of a single line. 
We are pulling every day to reduce the risk of conflicts during the pull 
and we push as soon the code is stable. If you work directly on the master 
branch, you will get parallel lines each time you do a pull. It is not a 
problem per-see, but you may find it ugly and confusing at first.

For the release, we use tags like "vX.Y.Z". If we have to fix something in 
a specific version, we create a branch named "bX.Y". We use a different 
name to avoid confusion. If you choose to use feature branches, give them 
meaningful name. I suggest to look at the git history itself to see one 
example of heavily branched development 


On Thursday, July 19, 2012 12:14:17 AM UTC-4, PeterSteele wrote:
> We're starting a new project and will be using git for our source code 
> management system. We're all previous SVN users and have not used git 
> before. I'm sure this question has been asked many times before and I 
> apologize for asking it again: What is the convention for setting up a new 
> project in git? In SVN, the convention is to call the main branch "trunk" 
> and branches are created under a directory called "branches" (e.g. 
> branches/1.0 for the first release branch). There is also a "tags" 
> directory used for labeling key snapshots of the trunk (or even release 
> branches), without actually creating a branch.
> From what I've read, it appears that the convention is to call the main 
> trunk "master". Is this correct? What's the convention for release branches 
> and tags? Are there any other git specific repository conventions that we 
> should follow?

You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To view this discussion on the web visit 
To post to this group, send email to git-users@googlegroups.com.
To unsubscribe from this group, send email to 
For more options, visit this group at 

Reply via email to