]> git.ipfire.org Git - thirdparty/git.git/blame - Documentation/git-branch.txt
Documentation: fix "gitlink::foobar[s]"
[thirdparty/git.git] / Documentation / git-branch.txt
CommitLineData
215a7ad1
JH
1git-branch(1)
2=============
7fc9d69f
JH
3
4NAME
5----
c3f0baac 6git-branch - List, create, or delete branches
7fc9d69f
JH
7
8SYNOPSIS
9--------
dd181119 10[verse]
5e00f6fa
JP
11'git-branch' [--color | --no-color] [-r | -a]
12 [-v [--abbrev=<length> | --no-abbrev]]
3f7dfe77 13 [--contains <commit>]
0746d19a 14'git-branch' [--track | --no-track] [-l] [-f] <branchname> [<start-point>]
c976d415 15'git-branch' (-m | -M) [<oldbranch>] <newbranch>
7dda22e3 16'git-branch' (-d | -D) [-r] <branchname>...
7fc9d69f
JH
17
18DESCRIPTION
19-----------
bfcc9214 20With no arguments given a list of existing branches
2eaf273d 21will be shown, the current branch will be highlighted with an asterisk.
bfcc9214
AP
22Option `-r` causes the remote-tracking branches to be listed,
23and option `-a` shows both.
3f7dfe77
JH
24With `--contains <commit>`, shows only the branches that
25contains the named commit (in other words, the branches whose
26tip commits are descendant of the named commit).
7fc9d69f 27
2eaf273d
SE
28In its second form, a new branch named <branchname> will be created.
29It will start out with a head equal to the one given as <start-point>.
30If no <start-point> is given, the branch will be created with a head
31equal to that of the currently checked out branch.
32
46749204
FMQ
33Note that this will create the new branch, but it will not switch the
34working tree to it; use "git checkout <newbranch>" to switch to the
35new branch.
36
0746d19a
PB
37When a local branch is started off a remote branch, git can setup the
38branch so that gitlink:git-pull[1] will appropriately merge from that
39remote branch. If this behavior is desired, it is possible to make it
40the default using the global `branch.autosetupmerge` configuration
41flag. Otherwise, it can be chosen per-branch using the `--track`
42and `--no-track` options.
43
c976d415
LH
44With a '-m' or '-M' option, <oldbranch> will be renamed to <newbranch>.
45If <oldbranch> had a corresponding reflog, it is renamed to match
46<newbranch>, and a reflog entry is created to remember the branch
47renaming. If <newbranch> exists, -M must be used to force the rename
48to happen.
49
2eaf273d 50With a `-d` or `-D` option, `<branchname>` will be deleted. You may
3a4b3f26 51specify more than one branch for deletion. If the branch currently
1e72a40d
JH
52has a reflog then the reflog will also be deleted.
53
54Use -r together with -d to delete remote-tracking branches. Note, that it
55only makes sense to delete remote-tracking branches if they no longer exist
56in remote repository or if gitlink:git-fetch[1] was configured not to fetch
57them again. See also 'prune' subcommand of gitlink:git-remote[1] for way to
58clean up all obsolete remote-tracking branches.
dd181119
JL
59
60
7fc9d69f
JH
61OPTIONS
62-------
d4072c97 63-d::
1e72a40d 64 Delete a branch. The branch must be fully merged in HEAD.
d4072c97
AE
65
66-D::
1e72a40d 67 Delete a branch irrespective of its merged status.
d4072c97 68
3a4b3f26 69-l::
792d2370
JK
70 Create the branch's reflog. This activates recording of
71 all changes made to the branch ref, enabling use of date
967506bb 72 based sha1 expressions such as "<branchname>@\{yesterday}".
3a4b3f26 73
075dd8ee 74-f::
2eaf273d
SE
75 Force the creation of a new branch even if it means deleting
76 a branch that already exists with the same name.
77
c976d415
LH
78-m::
79 Move/rename a branch and the corresponding reflog.
80
81-M::
82 Move/rename a branch even if the new branchname already exists.
83
f3673988
BG
84--color::
85 Color branches to highlight current, local, and remote branches.
86
87--no-color::
88 Turn off branch colors, even when the configuration file gives the
89 default to color output.
90
2eaf273d 91-r::
7dda22e3 92 List or delete (if used with -d) the remote-tracking branches.
bfcc9214
AP
93
94-a::
95 List both remote-tracking branches and local branches.
075dd8ee 96
e0e6c096 97-v, --verbose::
23bfbb81 98 Show sha1 and commit subject line for each head.
75e6e213
LH
99
100--abbrev=<length>::
101 Alter minimum display length for sha1 in output listing,
102 default value is 7.
103
5e00f6fa
JP
104--no-abbrev::
105 Display the full sha1s in output listing rather than abbreviating them.
106
84d176ce
FMQ
107--track::
108 Set up configuration so that git-pull will automatically
109 retrieve data from the remote branch. Use this if you always
110 pull from the same remote branch into the new branch, or if you
111 don't want to use "git pull <repository> <refspec>" explicitly. Set the
112 branch.autosetupmerge configuration variable to true if you
113 want git-checkout and git-branch to always behave as if
114 '--track' were given.
115
116--no-track::
53e780c8 117 When a branch is created off a remote branch,
84d176ce
FMQ
118 set up configuration so that git-pull will not retrieve data
119 from the remote branch, ignoring the branch.autosetupmerge
120 configuration variable.
121
52a22d1e 122<branchname>::
d4072c97 123 The name of the branch to create or delete.
2b1f4247
SP
124 The new branch name must pass all checks defined by
125 gitlink:git-check-ref-format[1]. Some of these checks
126 may restrict the characters allowed in a branch name.
7fc9d69f 127
075dd8ee 128<start-point>::
2eaf273d
SE
129 The new branch will be created with a HEAD equal to this. It may
130 be given as a branch name, a commit-id, or a tag. If this option
131 is omitted, the current branch is assumed.
132
c976d415
LH
133<oldbranch>::
134 The name of an existing branch to rename.
135
136<newbranch>::
137 The new name for an existing branch. The same restrictions as for
138 <branchname> applies.
7fc9d69f 139
1e2ccd3a
JH
140
141Examples
2eaf273d 142--------
1e2ccd3a 143
dd181119 144Start development off of a known tag::
1e2ccd3a
JH
145+
146------------
147$ git clone git://git.kernel.org/pub/scm/.../linux-2.6 my2.6
148$ cd my2.6
2eaf273d 149$ git branch my2.6.14 v2.6.14 <1>
1e2ccd3a 150$ git checkout my2.6.14
1e2ccd3a 151------------
2eaf273d
SE
152+
153<1> This step and the next one could be combined into a single step with
154"checkout -b my2.6.14 v2.6.14".
1e2ccd3a
JH
155
156Delete unneeded branch::
157+
158------------
159$ git clone git://git.kernel.org/.../git.git my.git
160$ cd my.git
33b1f3d5
FM
161$ git branch -d -r origin/todo origin/html origin/man <1>
162$ git branch -D test <2>
2eaf273d
SE
163------------
164+
1e72a40d
JH
165<1> Delete remote-tracking branches "todo", "html", "man". Next 'fetch' or
166'pull' will create them again unless you configure them not to. See
167gitlink:git-fetch[1].
168<2> Delete "test" branch even if the "master" branch (or whichever branch is
169currently checked out) does not have all commits from test branch.
2eaf273d
SE
170
171
172Notes
173-----
174
175If you are creating a branch that you want to immediately checkout, it's
176easier to use the git checkout command with its `-b` option to create
177a branch and check it out with a single command.
178
1e2ccd3a 179
7fc9d69f
JH
180Author
181------
182Written by Linus Torvalds <torvalds@osdl.org> and Junio C Hamano <junkio@cox.net>
183
184Documentation
185--------------
186Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.
187
188GIT
189---
a7154e91 190Part of the gitlink:git[7] suite