GIT

Branch Names

We recommend the following naming schema for git branches which are pushed to publicly accessible locations (local branches do, of course, not have to conform to these recommendations):

digraph branches {
fontname=Arial
fontsize=11
node [fontsize=11,fontname=Arial]
edge [fontsize=11,fontname=Arial]

rankdir=LR

node [shape=ellipse]
edge [dir=back]
a -> b -> c -> d
b -> h -> i
d -> { e f g }

edge [style=dashed,dir=forward]
node [shape=box,style="filled",fillcolor="#fff0f0"]
0.1 -> i
master -> d
f45 [label="feature-45"]
f45 -> e
b36 [label="bug-36"]
b36 -> f
wips [label="wip-something"]
wips -> g

node [shape=diamond,style="filled",fillcolor="#f0fff0"]
r01 [label="release-0.1"]
r01 -> b
}

In the figure, ellipses designate commits, red boxes designate branches and green diamonds designate tags.

Permanent Branches

master

TODO

VERSION

For branches in which released versions are maintained. Examples of VERSION are 0.8, 0.22 and 1.0.

Temporary Development Branches

Important

Branches of this kind should be deleted (locally and remotely) once their contents has been verified and merged into the respective parent branch (usually master or a VERSION maintenance branch).

bug-ISSUE-NUMBER

For branches in which fixes to particular known bugs are being developed. ISSUE-NUMBER should be the number of the issue tracking the bug in the issue tracker.

These branches will participate in merge tests conducted by the continuous integration server.

feature-ISSUE-NUMBER

For branches in which new features are being developed. ISSUE-NUMBER should be the number of the issue tracking the feature in the issue tracker.

These branches will participate in merge tests conducted by the continuous integration server.

feature-NAME

For branches in which new features are being developed when there is no corresponding issue in the issue tracker.

These branches will participate in merge tests conducted by the continuous integration server.

Note

It is recommended to track new features in the issues tracker and use the previously described feature-ISSUE-NUMBER naming schema.

wip-NAME

For branches which just store some unfinished and/or broken changes not related to a particular bug or new feature. This kind of branch is useful for storing unfinished work without triggering merge test on the continuous integration server.

These branches will not participate in merge tests conducted by the continuous integration server.

Tag Names

Important

Tag names must not clash with branch names. Therefore we recommend release-VERSION instead of just VERSION for tag names.

release-VERSION

For tags which mark the point in history at which the release branch named VERSION diverged from the mainline history.

Table Of Contents

Related Documentation

This Page