OLD | NEW |
(Empty) | |
| 1 '\" t |
| 2 .\" Title: git-rebase-update |
| 3 .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] |
| 4 .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/> |
| 5 .\" Date: 03/23/2014 |
| 6 .\" Manual: Chromium depot_tools Manual |
| 7 .\" Source: depot_tools 936565b |
| 8 .\" Language: English |
| 9 .\" |
| 10 .TH "GIT\-REBASE\-UPDATE" "1" "03/23/2014" "depot_tools 936565b" "Chromium depot
_tools Manual" |
| 11 .\" ----------------------------------------------------------------- |
| 12 .\" * Define some portability stuff |
| 13 .\" ----------------------------------------------------------------- |
| 14 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 15 .\" http://bugs.debian.org/507673 |
| 16 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html |
| 17 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 18 .ie \n(.g .ds Aq \(aq |
| 19 .el .ds Aq ' |
| 20 .\" ----------------------------------------------------------------- |
| 21 .\" * set default formatting |
| 22 .\" ----------------------------------------------------------------- |
| 23 .\" disable hyphenation |
| 24 .nh |
| 25 .\" disable justification (adjust text to left margin only) |
| 26 .ad l |
| 27 .\" ----------------------------------------------------------------- |
| 28 .\" * MAIN CONTENT STARTS HERE * |
| 29 .\" ----------------------------------------------------------------- |
| 30 .SH "NAME" |
| 31 git-rebase-update \- Updates all branches to have the latest changes from their
upstreams\&. |
| 32 .SH "SYNOPSIS" |
| 33 .sp |
| 34 .nf |
| 35 \fIgit rebase\-update\fR [\-v | \-\-verbose] [\-n | \-\-no_fetch] |
| 36 .fi |
| 37 .sp |
| 38 .SH "DESCRIPTION" |
| 39 .sp |
| 40 Brings all branches up\-to\-date with their tracking branches\&. This involves s
everal phases: |
| 41 .PP |
| 42 Preparation |
| 43 .RS 4 |
| 44 If you currently have a branch checked out, any changes on that branch are |
| 45 \fIfrozen\fR |
| 46 (See |
| 47 \fBgit-freeze\fR(1) |
| 48 for more detail)\&. Additionally, the current branch is recorded for the |
| 49 \fIRestoration\fR |
| 50 phase later (see |
| 51 \fICONFIGURATION VARIABLES\fR |
| 52 for details on |
| 53 depot\-tools\&.rebase\-update\&.starting\-branch)\&. |
| 54 .RE |
| 55 .PP |
| 56 Fetching |
| 57 .RS 4 |
| 58 All branches are examined to find their upstream references\&. The correct set o
f git remotes is determined, and fetched accordingly\&. Note that if any branche
s have a tag as their upstream, we are forced to pull all remotes\&. |
| 59 .sp |
| 60 Pass |
| 61 \-\-no_fetch |
| 62 to skip this phase\&. |
| 63 .RE |
| 64 .PP |
| 65 Rebasing |
| 66 .RS 4 |
| 67 All branches are rebased in topological order from roots (upstreams) to leafs\&.
Each branch is rebased from its marked merge\-base (see |
| 68 \fICONFIGURATION VARIABLES\fR) to the branch tip on top of its parent branch\&.
If the parent branch is |
| 69 \fIfrozen\fR |
| 70 (see |
| 71 \fBgit-freeze\fR(1)), the branch will be rebased onto the last non\-freeze commi
t on the parent branch\&. |
| 72 .sp |
| 73 Things get interesting when there are merge conflicts on rebase\&. The |
| 74 \fBmost common\fR |
| 75 cause for conflicts is when your branch has been committed to the upstream in sq
uashed form, ala |
| 76 \fBgit-squash-branch\fR(1), which is what |
| 77 \fBgit-cl\fR(1) |
| 78 and the |
| 79 \fICommit Queue\fR |
| 80 will do\&. Because of that, |
| 81 git rebase\-update |
| 82 will attempt to squash your conflicted branch to see if the squashed version app
lies cleanly to its upstream\&. |
| 83 .sp |
| 84 If it does not apply cleanly, then your original (non\-squashed) branch will be
left in mid\-rebase and |
| 85 git rebase\-update |
| 86 will exit\&. You can deal with this like any other conflicted rebase\&. When you
\(cqre done, just |
| 87 git rebase\-update |
| 88 again to pick up where you left off\&. |
| 89 .RE |
| 90 .PP |
| 91 Cleanup |
| 92 .RS 4 |
| 93 Once all the branches have been rebased, any empty branches (i\&.e\&. branches w
ith no commits on them) are removed\&. If a branch is removed in this fashion, a
ny branches which depend on it are reparented to the parent of the removed branc
h (see |
| 94 \fBgit-reparent-branch\fR(1))\&. |
| 95 .RE |
| 96 .PP |
| 97 Restoration |
| 98 .RS 4 |
| 99 git rebase\-update |
| 100 checks out the branch that you started on, and |
| 101 \fIthaws\fR |
| 102 it, if necessary (see |
| 103 \fBgit-thaw\fR(1))\&. If the branch you started on got cleaned up, |
| 104 git rebase\-update |
| 105 will checkout the |
| 106 \fIroot\fR |
| 107 ref (defaults to |
| 108 \fIorigin/master\fR, as configured by |
| 109 depot\-tools\&.upstream, see |
| 110 \fBgit-new-branch\fR(1))\&. |
| 111 .RE |
| 112 .SH "OPTIONS" |
| 113 .PP |
| 114 \-n, \-\-no_fetch |
| 115 .RS 4 |
| 116 Skip the |
| 117 git fetch |
| 118 phase of rebase\-update\&. |
| 119 .RE |
| 120 .PP |
| 121 \-v, \-\-verbose |
| 122 .RS 4 |
| 123 More text than your terminal can handle\&. |
| 124 .RE |
| 125 .SH "CONFIGURATION VARIABLES" |
| 126 .SS "depot\-tools\&.rebase\-update\&.starting\-branch" |
| 127 .sp |
| 128 When git rebase\-update first runs, it will record the current branch here so th
at when it completes successfully, it will return back to the same branch you st
arted on, even if git rebase\-update is interrupted due to rebase conflicts\&. W
hen git rebase\-update completes successfully, this configuration variable is re
moved\&. |
| 129 .SS "branch\&.<name>\&.dormant" |
| 130 .sp |
| 131 If true, will cause rebase\-update to skip all processing on the branch\&. Usefu
l for old/high\-conflict branches which you want to keep for posterity, but don\
(cqt want to deal with when running git rebase\-update |
| 132 .SS "branch\&.<name>\&.base" |
| 133 .sp |
| 134 Holds the \fIbase\fR reference for this branch\&. By default this is equivalent
to git merge\-base <name> <name>@{upstream}\&. However, it can diverge if <name>
@{upstream} is manually rebased\&. In this case, it correctly preserves the valu
e it had before, where git merge\-base would now report the wrong value\&. |
| 135 .sp |
| 136 All of the tools in the \fBdepot_tools\fR(1) suite collude to keep this value as
up\-to\-date as possible, including \fBgit-reparent-branch\fR(1), and \fBgit-ne
w-branch\fR(1)\&. \fBgit-map\fR(1) also shows the location of these marker value
s in \fBwhite\fR\&. |
| 137 .sp |
| 138 \fBgit-mark-merge-base\fR(1) allows easy manual interaction for this value, in t
he unlikely event that it gets out of sync\&. |
| 139 .SH "SUGGESTED ALIASES" |
| 140 .sp |
| 141 Some common short\-hand aliases\&. Feel free to add these to your \fI~/\&.gitcon
fig\fR file\&. |
| 142 .sp |
| 143 .if n \{\ |
| 144 .RS 4 |
| 145 .\} |
| 146 .nf |
| 147 [alias] |
| 148 git reup = rebase\-update |
| 149 .fi |
| 150 .if n \{\ |
| 151 .RE |
| 152 .\} |
| 153 .sp |
| 154 .SH "SEE ALSO" |
| 155 .sp |
| 156 \fBgit-new-branch\fR(1), \fBgit-reparent-branch\fR(1), \fBgit-rename-branch\fR(1
), \fBgit-upstream-diff\fR(1), \fBgit-freeze\fR(1), \fBgit-mark-merge-base\fR(1) |
| 157 .SH "CHROMIUM DEPOT_TOOLS" |
| 158 .sp |
| 159 Part of the chromium \fBdepot_tools\fR(1) suite\&. These tools are meant to assi
st with the development of chromium and related projects\&. Download the tools f
rom \m[blue]\fBhere\fR\m[]\&\s-2\u[1]\d\s+2\&. |
| 160 .SH "NOTES" |
| 161 .IP " 1." 4 |
| 162 here |
| 163 .RS 4 |
| 164 \%https://chromium.googlesource.com/chromium/tools/depot_tools.git |
| 165 .RE |
OLD | NEW |