A new branch is based upon an existing commit within the repository. It is entirely up to you to determine and specify which commit to use as the start of the new branch. Git supports an arbitrarily complex branching structure, including branching branches and forking multiple branches from the same commit.
The lifetime of a branch is, again, your decision. A branch may be short-lived or long-lived. A given branch name may be added and deleted multiple times over the lifetime of the repository.
Once you have identified the commit from which a branch should
start, simply use the git branch command. Thus, to create a new branch off the
HEAD
of your current branch for the purposes of
fixing Problem Report #1138, you might use:
$ git branch prs/pr-1138
The basic form of the command is:
git branchbranch
[starting-commit
]
When no starting-commit
is specified,
the default is the revision committed most recently on the current
branch. In other words, the default is to start a new branch at the
point where you’re working right now.
Note that the git branch command merely introduces the name of a branch into the repository. It does not change your working directory to use the new branch. No working directory files change; no implicit branch context changes; no new commits are made. The command simply creates a named branch at the given commit. You can’t actually start work on the branch until you switch to it, as shown later in Checking Out Branches.
Sometimes you want to specify a different commit as the start of a
branch. For instance, suppose that your project creates a new branch for
each reported bug, and you hear about a bug in a certain release. It may
be convenient to use the starting-commit
parameter, as an alternative to switching your working directory to the
branch that represents the release.
Normally, your project establishes conventions that let you
specify a starting commit with certainty. For instance, to make a bug
fix on the version 2.3 release of your software, you might specify a
branch named rel-2.3
as the starting commit:
$ git branch prs/pr-1138 rel-2.3
The only commit name guaranteed to be unique is the hash ID. If you know a hash ID, you can use it directly:
$ git branch prs/pr-1138 db7de5feebef8bcd18c5356cb47c337236b50c13
52.15.231.106