From: Jari Aalto <jari.aalto@xxxxxxxxx> Signed-off-by: Jari Aalto <jari.aalto@xxxxxxxxx> --- Documentation/git-rebase.txt | 183 +++++++++++++++++++++--------------------- 1 files changed, 93 insertions(+), 90 deletions(-) diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt index 30e5c0e..297b85b 100644 --- a/Documentation/git-rebase.txt +++ b/Documentation/git-rebase.txt @@ -204,6 +204,10 @@ rebase.autosquash:: OPTIONS ------- + +<branch>:: + Working branch; defaults to HEAD. + <newbase>:: Starting point at which to create the new commits. If the --onto option is not specified, the starting point is @@ -218,66 +222,24 @@ leave out at most one of A and B, in which case it defaults to HEAD. Upstream branch to compare against. May be any valid commit, not just an existing branch name. -<branch>:: - Working branch; defaults to HEAD. - ---continue:: - Restart the rebasing process after having resolved a merge conflict. - --abort:: Restore the original branch and abort the rebase operation. + See also `--continue' and `--skip'. ---skip:: - Restart the rebasing process by skipping the current patch. - --m:: ---merge:: - Use merging strategies to rebase. When the recursive (default) merge - strategy is used, this allows rebase to be aware of renames on the - upstream side. +--autosquash:: +--no-autosquash:: + When the commit log message begins with "squash! ..." (or + "fixup! ..."), and there is a commit whose title begins with + the same ..., automatically modify the todo list of rebase -i + so that the commit marked for squashing comes right after the + commit to be modified, and change the action of the moved + commit from `pick` to `squash` (or `fixup`). + -Note that a rebase merge works by replaying each commit from the working -branch on top of the <upstream> branch. Because of this, when a merge -conflict happens, the side reported as 'ours' is the so-far rebased -series, starting with <upstream>, and 'theirs' is the working branch. In -other words, the sides are swapped. - --s <strategy>:: ---strategy=<strategy>:: - Use the given merge strategy. - If there is no `-s` option 'git merge-recursive' is used - instead. This implies --merge. +This option is only valid when the '--interactive' option is used. + -Because 'git rebase' replays each commit from the working branch -on top of the <upstream> branch using the given strategy, using -the 'ours' strategy simply discards all patches from the <branch>, -which makes little sense. - --X <strategy-option>:: ---strategy-option=<strategy-option>:: - Pass the <strategy-option> through to the merge strategy. - This implies `\--merge` and, if no strategy has been - specified, `-s recursive`. Note the reversal of 'ours' and - 'theirs' as noted in above for the `-m` option. - --q:: ---quiet:: - Be quiet. Implies --no-stat. - --v:: ---verbose:: - Be verbose. Implies --stat. - ---stat:: - Show a diffstat of what changed upstream since the last rebase. The - diffstat is also controlled by the configuration option rebase.stat. - --n:: ---no-stat:: - Do not show a diffstat as part of the rebase process. - ---no-verify:: - This option bypasses the pre-rebase hook. See also linkgit:githooks[5]. +If the '--autosquash' option is enabled by default using the +configuration variable `rebase.autosquash`, this option can be +used to override and disable this setting. -C<n>:: Ensure at least <n> lines of surrounding context match before @@ -285,6 +247,16 @@ which makes little sense. context exist they all must match. By default no context is ever ignored. +--continue:: + Restart the rebasing process after having resolved a merge conflict. + See also `--abort' and `--skip'. + +--committer-date-is-author-date:: +--ignore-date:: + These flags are passed to 'git am' to easily change the dates + of the rebased commits (see linkgit:git-am[1]). + Incompatible with the --interactive option. + -f:: --force-rebase:: Force the rebase even if the current branch is a descendant @@ -299,23 +271,62 @@ fresh commits so it can be remerged successfully without needing to "revert the reversion" (see the link:howto/revert-a-faulty-merge.txt[revert-a-faulty-merge How-To] for details). +-i:: +--interactive:: + Make a list of the commits which are about to be rebased. Let the + user edit that list before rebasing. This mode can also be used to + split commits (see SPLITTING COMMITS below). + --ignore-whitespace:: --whitespace=<option>:: These flag are passed to the 'git apply' program (see linkgit:git-apply[1]) that applies the patch. Incompatible with the --interactive option. ---committer-date-is-author-date:: ---ignore-date:: - These flags are passed to 'git am' to easily change the dates - of the rebased commits (see linkgit:git-am[1]). - Incompatible with the --interactive option. +-m:: +--merge:: + Use merging strategies to rebase. When the recursive (default) merge + strategy is used, this allows rebase to be aware of renames on the + upstream side. ++ +Note that a rebase merge works by replaying each commit from the working +branch on top of the <upstream> branch. Because of this, when a merge +conflict happens, the side reported as 'ours' is the so-far rebased +series, starting with <upstream>, and 'theirs' is the working branch. In +other words, the sides are swapped. --i:: ---interactive:: - Make a list of the commits which are about to be rebased. Let the - user edit that list before rebasing. This mode can also be used to - split commits (see SPLITTING COMMITS below). +-n:: +--no-stat:: + Do not show a diffstat as part of the rebase process. + +--no-ff:: + With --interactive, cherry-pick all rebased commits instead of + fast-forwarding over the unchanged ones. This ensures that the + entire history of the rebased branch is composed of new commits. ++ +Without --interactive, this is a synonym for --force-rebase. ++ +You may find this helpful after reverting a topic branch merge, as this option +recreates the topic branch with fresh commits so it can be remerged +successfully without needing to "revert the reversion" (see the +link:howto/revert-a-faulty-merge.txt[revert-a-faulty-merge How-To] for details). +--no-verify:: + This option bypasses the pre-rebase hook. See also linkgit:githooks[5]. + +-s <strategy>:: +--strategy=<strategy>:: + Use the given merge strategy. + If there is no `-s` option 'git merge-recursive' is used + instead. This implies --merge. ++ +Because 'git rebase' replays each commit from the working branch +on top of the <upstream> branch using the given strategy, using +the 'ours' strategy simply discards all patches from the <branch>, +which makes little sense. + +--skip:: + Restart the rebasing process by skipping the current patch. + See also `--abort' and `--contnue'. -p:: --preserve-merges:: @@ -326,6 +337,10 @@ with the `--interactive` option explicitly is generally not a good idea unless you know what you are doing (see BUGS below). +-q:: +--quiet:: + Be quiet. Implies --no-stat. + --root:: Rebase all commits reachable from <branch>, instead of limiting them with an <upstream>. This allows you to rebase @@ -335,32 +350,20 @@ idea unless you know what you are doing (see BUGS below). root commits will be rewritten to have <newbase> as parent instead. ---autosquash:: ---no-autosquash:: - When the commit log message begins with "squash! ..." (or - "fixup! ..."), and there is a commit whose title begins with - the same ..., automatically modify the todo list of rebase -i - so that the commit marked for squashing comes right after the - commit to be modified, and change the action of the moved - commit from `pick` to `squash` (or `fixup`). -+ -This option is only valid when the '--interactive' option is used. -+ -If the '--autosquash' option is enabled by default using the -configuration variable `rebase.autosquash`, this option can be -used to override and disable this setting. +--stat:: + Show a diffstat of what changed upstream since the last rebase. The + diffstat is also controlled by the configuration option rebase.stat. ---no-ff:: - With --interactive, cherry-pick all rebased commits instead of - fast-forwarding over the unchanged ones. This ensures that the - entire history of the rebased branch is composed of new commits. -+ -Without --interactive, this is a synonym for --force-rebase. -+ -You may find this helpful after reverting a topic branch merge, as this option -recreates the topic branch with fresh commits so it can be remerged -successfully without needing to "revert the reversion" (see the -link:howto/revert-a-faulty-merge.txt[revert-a-faulty-merge How-To] for details). +-v:: +--verbose:: + Be verbose. Implies --stat. + +-X <strategy-option>:: +--strategy-option=<strategy-option>:: + Pass the <strategy-option> through to the merge strategy. + This implies `\--merge` and, if no strategy has been + specified, `-s recursive`. Note the reversal of 'ours' and + 'theirs' as noted in above for the `-m` option. include::merge-strategies.txt[] -- 1.7.2.3 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html