OSDN Git Service

Add Git official document to help
[tortoisegit/TortoiseGitJp.git] / doc / source / en / TortoiseGit / git_doc / git-branch.html.xml
1 <?xml version="1.0" encoding="UTF-8"?>\r
2 <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">\r
3 \r
4 <article lang="en" id="git-branch(1)">\r
5 <articleinfo>\r
6     <title>git-branch(1)</title>\r
7         <indexterm>\r
8                 <primary>git-branch(1)</primary>\r
9         </indexterm>\r
10 </articleinfo>\r
11 <simplesect id="_name">\r
12 <title>NAME</title>\r
13 <simpara>git-branch - List, create, or delete branches</simpara>\r
14 </simplesect>\r
15 <simplesect id="_synopsis">\r
16 <title>SYNOPSIS</title>\r
17 <blockquote>\r
18 <literallayout><emphasis>git branch</emphasis> [--color | --no-color] [-r | -a]\r
19         [-v [--abbrev=&lt;length&gt; | --no-abbrev]]\r
20         [(--merged | --no-merged | --contains) [&lt;commit&gt;]]\r
21 <emphasis>git branch</emphasis> [--track | --no-track] [-l] [-f] &lt;branchname&gt; [&lt;start-point&gt;]\r
22 <emphasis>git branch</emphasis> (-m | -M) [&lt;oldbranch&gt;] &lt;newbranch&gt;\r
23 <emphasis>git branch</emphasis> (-d | -D) [-r] &lt;branchname&gt;&#8230;</literallayout>\r
24 </blockquote>\r
25 </simplesect>\r
26 <simplesect id="_description">\r
27 <title>DESCRIPTION</title>\r
28 <simpara>With no arguments, existing branches are listed, the current branch will\r
29 be highlighted with an asterisk.  Option <literal>-r</literal> causes the remote-tracking\r
30 branches to be listed, and option <literal>-a</literal> shows both.</simpara>\r
31 <simpara>With <literal>--contains</literal>, shows only the branches that contains the named commit\r
32 (in other words, the branches whose tip commits are descendant of the\r
33 named commit).  With <literal>--merged</literal>, only branches merged into the named\r
34 commit (i.e. the branches whose tip commits are reachable from the named\r
35 commit) will be listed.  With <literal>--no-merged</literal> only branches not merged into\r
36 the named commit will be listed.  Missing &lt;commit&gt; argument defaults to\r
37 <emphasis>HEAD</emphasis> (i.e. the tip of the current branch).</simpara>\r
38 <simpara>In its second form, a new branch named &lt;branchname&gt; will be created.\r
39 It will start out with a head equal to the one given as &lt;start-point&gt;.\r
40 If no &lt;start-point&gt; is given, the branch will be created with a head\r
41 equal to that of the currently checked out branch.</simpara>\r
42 <simpara>Note that this will create the new branch, but it will not switch the\r
43 working tree to it; use "git checkout &lt;newbranch&gt;" to switch to the\r
44 new branch.</simpara>\r
45 <simpara>When a local branch is started off a remote branch, git sets up the\r
46 branch so that <emphasis>git-pull</emphasis> will appropriately merge from\r
47 the remote branch. This behavior may be changed via the global\r
48 <literal>branch.autosetupmerge</literal> configuration flag. That setting can be\r
49 overridden by using the <literal>--track</literal> and <literal>--no-track</literal> options.</simpara>\r
50 <simpara>With a <emphasis>-m</emphasis> or <emphasis>-M</emphasis> option, &lt;oldbranch&gt; will be renamed to &lt;newbranch&gt;.\r
51 If &lt;oldbranch&gt; had a corresponding reflog, it is renamed to match\r
52 &lt;newbranch&gt;, and a reflog entry is created to remember the branch\r
53 renaming. If &lt;newbranch&gt; exists, -M must be used to force the rename\r
54 to happen.</simpara>\r
55 <simpara>With a <literal>-d</literal> or <literal>-D</literal> option, <literal>&lt;branchname&gt;</literal> will be deleted.  You may\r
56 specify more than one branch for deletion.  If the branch currently\r
57 has a reflog then the reflog will also be deleted.</simpara>\r
58 <simpara>Use -r together with -d to delete remote-tracking branches. Note, that it\r
59 only makes sense to delete remote-tracking branches if they no longer exist\r
60 in remote repository or if <emphasis>git-fetch</emphasis> was configured not to fetch\r
61 them again. See also <emphasis>prune</emphasis> subcommand of <xref linkend="git-remote(1)"/> for way to\r
62 clean up all obsolete remote-tracking branches.</simpara>\r
63 </simplesect>\r
64 <simplesect id="_options">\r
65 <title>OPTIONS</title>\r
66 <variablelist>\r
67 <varlistentry>\r
68 <term>\r
69 -d\r
70 </term>\r
71 <listitem>\r
72 <simpara>\r
73         Delete a branch. The branch must be fully merged in HEAD.\r
74 </simpara>\r
75 </listitem>\r
76 </varlistentry>\r
77 <varlistentry>\r
78 <term>\r
79 -D\r
80 </term>\r
81 <listitem>\r
82 <simpara>\r
83         Delete a branch irrespective of its merged status.\r
84 </simpara>\r
85 </listitem>\r
86 </varlistentry>\r
87 <varlistentry>\r
88 <term>\r
89 -l\r
90 </term>\r
91 <listitem>\r
92 <simpara>\r
93         Create the branch&#8217;s reflog.  This activates recording of\r
94         all changes made to the branch ref, enabling use of date\r
95         based sha1 expressions such as "&lt;branchname&gt;@{yesterday}".\r
96 </simpara>\r
97 </listitem>\r
98 </varlistentry>\r
99 <varlistentry>\r
100 <term>\r
101 -f\r
102 </term>\r
103 <listitem>\r
104 <simpara>\r
105         Force the creation of a new branch even if it means deleting\r
106         a branch that already exists with the same name.\r
107 </simpara>\r
108 </listitem>\r
109 </varlistentry>\r
110 <varlistentry>\r
111 <term>\r
112 -m\r
113 </term>\r
114 <listitem>\r
115 <simpara>\r
116         Move/rename a branch and the corresponding reflog.\r
117 </simpara>\r
118 </listitem>\r
119 </varlistentry>\r
120 <varlistentry>\r
121 <term>\r
122 -M\r
123 </term>\r
124 <listitem>\r
125 <simpara>\r
126         Move/rename a branch even if the new branchname already exists.\r
127 </simpara>\r
128 </listitem>\r
129 </varlistentry>\r
130 <varlistentry>\r
131 <term>\r
132 --color\r
133 </term>\r
134 <listitem>\r
135 <simpara>\r
136         Color branches to highlight current, local, and remote branches.\r
137 </simpara>\r
138 </listitem>\r
139 </varlistentry>\r
140 <varlistentry>\r
141 <term>\r
142 --no-color\r
143 </term>\r
144 <listitem>\r
145 <simpara>\r
146         Turn off branch colors, even when the configuration file gives the\r
147         default to color output.\r
148 </simpara>\r
149 </listitem>\r
150 </varlistentry>\r
151 <varlistentry>\r
152 <term>\r
153 -r\r
154 </term>\r
155 <listitem>\r
156 <simpara>\r
157         List or delete (if used with -d) the remote-tracking branches.\r
158 </simpara>\r
159 </listitem>\r
160 </varlistentry>\r
161 <varlistentry>\r
162 <term>\r
163 -a\r
164 </term>\r
165 <listitem>\r
166 <simpara>\r
167         List both remote-tracking branches and local branches.\r
168 </simpara>\r
169 </listitem>\r
170 </varlistentry>\r
171 <varlistentry>\r
172 <term>\r
173 -v\r
174 </term>\r
175 <term>\r
176 --verbose\r
177 </term>\r
178 <listitem>\r
179 <simpara>\r
180         Show sha1 and commit subject line for each head.\r
181 </simpara>\r
182 </listitem>\r
183 </varlistentry>\r
184 <varlistentry>\r
185 <term>\r
186 --abbrev=&lt;length&gt;\r
187 </term>\r
188 <listitem>\r
189 <simpara>\r
190         Alter minimum display length for sha1 in output listing,\r
191         default value is 7.\r
192 </simpara>\r
193 </listitem>\r
194 </varlistentry>\r
195 <varlistentry>\r
196 <term>\r
197 --no-abbrev\r
198 </term>\r
199 <listitem>\r
200 <simpara>\r
201         Display the full sha1s in output listing rather than abbreviating them.\r
202 </simpara>\r
203 </listitem>\r
204 </varlistentry>\r
205 <varlistentry>\r
206 <term>\r
207 --track\r
208 </term>\r
209 <listitem>\r
210 <simpara>\r
211         When creating a new branch, set up configuration so that <emphasis>git-pull</emphasis>\r
212         will automatically retrieve data from the start point, which must be\r
213         a branch. Use this if you always pull from the same upstream branch\r
214         into the new branch, and if you don&#8217;t want to use "git pull\r
215         &lt;repository&gt; &lt;refspec&gt;" explicitly. This behavior is the default\r
216         when the start point is a remote branch. Set the\r
217         branch.autosetupmerge configuration variable to <literal>false</literal> if you want\r
218         <emphasis>git-checkout</emphasis> and <emphasis>git-branch</emphasis> to always behave as if <emphasis>--no-track</emphasis> were\r
219         given. Set it to <literal>always</literal> if you want this behavior when the\r
220         start-point is either a local or remote branch.\r
221 </simpara>\r
222 </listitem>\r
223 </varlistentry>\r
224 <varlistentry>\r
225 <term>\r
226 --no-track\r
227 </term>\r
228 <listitem>\r
229 <simpara>\r
230         Ignore the branch.autosetupmerge configuration variable.\r
231 </simpara>\r
232 </listitem>\r
233 </varlistentry>\r
234 <varlistentry>\r
235 <term>\r
236 --contains &lt;commit&gt;\r
237 </term>\r
238 <listitem>\r
239 <simpara>\r
240         Only list branches which contain the specified commit.\r
241 </simpara>\r
242 </listitem>\r
243 </varlistentry>\r
244 <varlistentry>\r
245 <term>\r
246 --merged\r
247 </term>\r
248 <listitem>\r
249 <simpara>\r
250         Only list branches which are fully contained by HEAD.\r
251 </simpara>\r
252 </listitem>\r
253 </varlistentry>\r
254 <varlistentry>\r
255 <term>\r
256 --no-merged\r
257 </term>\r
258 <listitem>\r
259 <simpara>\r
260         Do not list branches which are fully contained by HEAD.\r
261 </simpara>\r
262 </listitem>\r
263 </varlistentry>\r
264 <varlistentry>\r
265 <term>\r
266 &lt;branchname&gt;\r
267 </term>\r
268 <listitem>\r
269 <simpara>\r
270         The name of the branch to create or delete.\r
271         The new branch name must pass all checks defined by\r
272         <xref linkend="git-check-ref-format(1)"/>.  Some of these checks\r
273         may restrict the characters allowed in a branch name.\r
274 </simpara>\r
275 </listitem>\r
276 </varlistentry>\r
277 <varlistentry>\r
278 <term>\r
279 &lt;start-point&gt;\r
280 </term>\r
281 <listitem>\r
282 <simpara>\r
283         The new branch will be created with a HEAD equal to this.  It may\r
284         be given as a branch name, a commit-id, or a tag.  If this option\r
285         is omitted, the current branch is assumed.\r
286 </simpara>\r
287 </listitem>\r
288 </varlistentry>\r
289 <varlistentry>\r
290 <term>\r
291 &lt;oldbranch&gt;\r
292 </term>\r
293 <listitem>\r
294 <simpara>\r
295         The name of an existing branch to rename.\r
296 </simpara>\r
297 </listitem>\r
298 </varlistentry>\r
299 <varlistentry>\r
300 <term>\r
301 &lt;newbranch&gt;\r
302 </term>\r
303 <listitem>\r
304 <simpara>\r
305         The new name for an existing branch. The same restrictions as for\r
306         &lt;branchname&gt; applies.\r
307 </simpara>\r
308 </listitem>\r
309 </varlistentry>\r
310 </variablelist>\r
311 </simplesect>\r
312 <simplesect id="_examples">\r
313 <title>Examples</title>\r
314 <variablelist>\r
315 <varlistentry>\r
316 <term>\r
317 Start development off of a known tag\r
318 </term>\r
319 <listitem>\r
320 <literallayout>$ git clone git://git.kernel.org/pub/scm/.../linux-2.6 my2.6\r
321 $ cd my2.6\r
322 $ git branch my2.6.14 v2.6.14   <co id="CO1-1"/>\r
323 $ git checkout my2.6.14</literallayout>\r
324 <calloutlist>\r
325 <callout arearefs="CO1-1">\r
326 <simpara>\r
327 This step and the next one could be combined into a single step with\r
328 "checkout -b my2.6.14 v2.6.14".\r
329 </simpara>\r
330 </callout>\r
331 </calloutlist>\r
332 </listitem>\r
333 </varlistentry>\r
334 <varlistentry>\r
335 <term>\r
336 Delete unneeded branch\r
337 </term>\r
338 <listitem>\r
339 <literallayout>$ git clone git://git.kernel.org/.../git.git my.git\r
340 $ cd my.git\r
341 $ git branch -d -r origin/todo origin/html origin/man   <co id="CO2-1"/>\r
342 $ git branch -D test                                    <co id="CO2-2"/></literallayout>\r
343 <calloutlist>\r
344 <callout arearefs="CO2-1">\r
345 <simpara>\r
346 Delete remote-tracking branches "todo", "html", "man". Next <emphasis>fetch</emphasis> or\r
347 <emphasis>pull</emphasis> will create them again unless you configure them not to. See\r
348 <xref linkend="git-fetch(1)"/>.\r
349 </simpara>\r
350 </callout>\r
351 <callout arearefs="CO2-2">\r
352 <simpara>\r
353 Delete "test" branch even if the "master" branch (or whichever branch is\r
354 currently checked out) does not have all commits from test branch.\r
355 </simpara>\r
356 </callout>\r
357 </calloutlist>\r
358 </listitem>\r
359 </varlistentry>\r
360 </variablelist>\r
361 </simplesect>\r
362 <simplesect id="_notes">\r
363 <title>Notes</title>\r
364 <simpara>If you are creating a branch that you want to immediately checkout, it&#8217;s\r
365 easier to use the git checkout command with its <literal>-b</literal> option to create\r
366 a branch and check it out with a single command.</simpara>\r
367 <simpara>The options <literal>--contains</literal>, <literal>--merged</literal> and <literal>--no-merged</literal> serves three related\r
368 but different purposes:</simpara>\r
369 <itemizedlist>\r
370 <listitem>\r
371 <simpara>\r
372 <literal>--contains &lt;commit&gt;</literal> is used to find all branches which will need\r
373   special attention if &lt;commit&gt; were to be rebased or amended, since those\r
374   branches contain the specified &lt;commit&gt;.\r
375 </simpara>\r
376 </listitem>\r
377 <listitem>\r
378 <simpara>\r
379 <literal>--merged</literal> is used to find all branches which can be safely deleted,\r
380   since those branches are fully contained by HEAD.\r
381 </simpara>\r
382 </listitem>\r
383 <listitem>\r
384 <simpara>\r
385 <literal>--no-merged</literal> is used to find branches which are candidates for merging\r
386   into HEAD, since those branches are not fully contained by HEAD.\r
387 </simpara>\r
388 </listitem>\r
389 </itemizedlist>\r
390 </simplesect>\r
391 <simplesect id="_author">\r
392 <title>Author</title>\r
393 <simpara>Written by Linus Torvalds &lt;<ulink url="mailto:torvalds@osdl.org">torvalds@osdl.org</ulink>&gt; and Junio C Hamano &lt;<ulink url="mailto:gitster@pobox.com">gitster@pobox.com</ulink>&gt;</simpara>\r
394 </simplesect>\r
395 <simplesect id="_documentation">\r
396 <title>Documentation</title>\r
397 <simpara>Documentation by Junio C Hamano and the git-list &lt;<ulink url="mailto:git@vger.kernel.org">git@vger.kernel.org</ulink>&gt;.</simpara>\r
398 </simplesect>\r
399 <simplesect id="_git">\r
400 <title>GIT</title>\r
401 <simpara>Part of the <xref linkend="git(1)"/> suite</simpara>\r
402 </simplesect>\r
403 </article>\r