blob: 2d85285665239f4d54676524fa221483267cbe5d [file] [log] [blame]
'\" t
.\" Title: git-new-branch
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\" Date: 04/10/2014
.\" Manual: Chromium depot_tools Manual
.\" Source: depot_tools 68b1017
.\" Language: English
.\"
.TH "GIT\-NEW\-BRANCH" "1" "04/10/2014" "depot_tools 68b1017" "Chromium depot_tools Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
git-new-branch \- Create a new branch with correct tracking information\&.
.SH "SYNOPSIS"
.sp
.nf
\fIgit new\-branch\fR <branch_name>
\fIgit new\-branch\fR \-\-upstream_current <branch_name>
\fIgit new\-branch\fR \-\-upstream <REF> <branch_name>
\fIgit new\-branch\fR \-\-lkgr <branch_name>
.fi
.sp
.SH "DESCRIPTION"
.sp
Creates a new branch\&. By default the new branch will track the configured upstream for the repo (defaults to \fIorigin/master\fR)\&. If one of the other options is specified, it will track that other ref instead\&.
.sp
Conceptually, each branch in your repo represents one \fIChange List (CL)\fR\&. If you have many independent CLs (i\&.e\&. the changes in one do not interact with/depend on the changes in another), then you should create them as new branches tracking the default upstream (i\&.e\&. git new\-branch <branch_name>)\&. If you have features which depend on each other, you should create stacked branches using git new\-branch \-\-upstream_current <branch_name>\&.
.SH "OPTIONS"
.PP
\-\-upstream_current
.RS 4
Set the tracking (upstream) branch to the currently\-checked\-out branch\&.
.RE
.PP
\-\-uptstream <REF>
.RS 4
Set the tracking (upstream) branch to <REF>\&. <REF> may be a local branch, remote branch, or a tag\&.
.RE
.PP
\-\-lkgr
.RS 4
Alias for
\-\-upstream lkgr\&.
.RE
.PP
<branch_name>
.RS 4
The name for the new branch\&.
.RE
.SH "CONFIGURATION VARIABLES"
.SS "depot\-tools\&.upstream"
.sp
This configures the default \fIupstream\fR for all new branches\&. If it is unset, it defaults to \fIorigin/master\fR\&. This is considered to be the \fIroot\fR branch\&.
.SH "EXAMPLE"
.sp
.sp
.if n \{\
.RS 4
.\}
.nf
\fB$ git map\-branches\fR
origin/master
cool_feature
subfeature
fixit
\fB frozen_branch *
$ git new\-branch independent_cl\fR
\fB$ git map\-branches\fR
\fBorigin/master
\fR cool_feature
subfeature
fixit
frozen_branch
\fB independent_cl *
$ git new\-branch \-\-upstream subfeature nested_cl\fR
\fB$ git map\-branches\fR
origin/master
cool_feature
\fB subfeature \fR\fB\fB(1)\fR\fR\fB
nested_cl *
\fR fixit
frozen_branch
independent_cl
\fB$ git checkout cool_feature\fR
Switched to branch \*(Aqcool_feature\*(Aq
Your branch is ahead of \*(Aqorigin/master\*(Aq by 4 commits\&.
(use "git push" to publish your local commits)
\fB$ git new\-branch \-\-upstream_current cl_depends_on_cool_feature\fR
\fB$ git map\-branches\fR
origin/master
\fB cool_feature
cl_depends_on_cool_feature *
\fR subfeature
nested_cl
fixit
frozen_branch
independent_cl
.fi
.if n \{\
.RE
.\}
.sp
.sp
.RS 4
.ie n \{\
\h'-04' 1.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 1." 4.2
.\}
Note that both branches are cyan because they are currently the same
\fIcommit\fR
object\&. See
\fBgit-map-branches\fR(1)
for more detail\&.
.RE
.SH "SUGGESTED ALIASES"
.sp
Some common short\-hand aliases\&. Feel free to add these to your \fI~/\&.gitconfig\fR file\&.
.sp
.if n \{\
.RS 4
.\}
.nf
[alias]
git nb = new\-branch
git tb = new\-branch \-\-upstream_current \fB(1)\fR
.fi
.if n \{\
.RE
.\}
.sp
.sp
\fB1. \fRmnemonic: tb \(-> "track branch"
.br
.SH "SEE ALSO"
.sp
\fBgit-rebase-update\fR(1), \fBgit-reparent-branch\fR(1), \fBgit-rename-branch\fR(1), \fBgit-upstream-diff\fR(1)
.SH "CHROMIUM DEPOT_TOOLS"
.sp
Part of the chromium \fBdepot_tools\fR(7) suite\&. These tools are meant to assist with the development of chromium and related projects\&. Download the tools from \m[blue]\fBhere\fR\m[]\&\s-2\u[1]\d\s+2\&.
.SH "NOTES"
.IP " 1." 4
here
.RS 4
\%https://chromium.googlesource.com/chromium/tools/depot_tools.git
.RE