Last updated May 19, 2013.
Tags are used for creating stable releases. To create a tag for using with the Git Drupal Repository, first, ensure that you're following the tag naming convention if you're using this tag for making a release. From inside the directory of the project, an example is:
git tag 7.x-1.0
Once the tag is created, you need to push the tag up to the master repository. By itself, push doesn't send the tags up, you also need to tell it to include the tags in the push by appending the --tags flag:
git push --tags
If you don't want to push all your tags, you can also be specific:
git push origin tag 7.x-1.0
Working with branches is similar to working with tags, but branches are used for development releases. First create the new branch and check it out:
git checkout -b 7.x-2.x
Once the branch is created locally, it can be pushed up to the remote repository:
git push origin 7.x-2.x
To then work with this branch:
git checkout 7.x-2.x
To see what branches you currently have:
git branch -v
The branch with the asterisk next to it is the active branch:
% git branch -v
* 7.x-2.x 170eb10 Initial commit.
master 170eb10 Initial commit.
In order for your module to work correctly with the Drupal.org testing system and supporting projects like Git Deploy, development branches should always be named using the
[Drupal version]-[Module version]pattern, never as
develop. See here for master branch cleanup info.
Newer Git Commands
If you're running Git 126.96.36.199 or later:
When pushing a branch, you can specify -u and your local branch will be automatically set up to track the remote branch. For example:
git checkout -b 7.x-1.x
git push -u origin 7.x-1.x
Deleting a tag/branch
If you mistakenly added a tag or branch, and want to remove it (assuming you haven't created a release with the tag, or committed anything to the branch), you can remove it by running the following commands.
Branch with name "branchname" (the second command is only needed if you already pushed it to the drupal.org repository):
git branch -d branchname
git push origin :branchname
Tag with name "tagname" (again, the second command is only necessary if you already pushed it to the drupal.org repository):
git tag -d tagname
git push origin :tagname
If for some reason you have a branch and a tag that are named the same (you shouldn't, but we're talking about a mistake here anyway), you can push with the following commands:
git push origin :refs/heads/branchname
git push origin :refs/tags/tagname