From: Junio C Hamano Date: Tue, 24 Jul 2018 21:50:43 +0000 (-0700) Subject: Merge branch 'en/rebase-consistency' X-Git-Tag: v2.19.0-rc0~141 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/0ce5a698c6f775c2cc18de9eb62d558b1b85d752?hp=-c Merge branch 'en/rebase-consistency' "git rebase" behaved slightly differently depending on which one of the three backends gets used; this has been documented and an effort to make them more uniform has begun. * en/rebase-consistency: git-rebase: make --allow-empty-message the default t3401: add directory rename testcases for rebase and am git-rebase.txt: document behavioral differences between modes directory-rename-detection.txt: technical docs on abilities and limitations git-rebase.txt: address confusion between --no-ff vs --force-rebase git-rebase: error out when incompatible options passed t3422: new testcases for checking when incompatible options passed git-rebase.sh: update help messages a bit git-rebase.txt: document incompatible options --- 0ce5a698c6f775c2cc18de9eb62d558b1b85d752 diff --combined Documentation/git-rebase.txt index 091eb53faa,9e136ee16e..a7850415b1 --- a/Documentation/git-rebase.txt +++ b/Documentation/git-rebase.txt @@@ -243,11 -243,15 +243,15 @@@ leave out at most one of A and B, in wh --keep-empty:: Keep the commits that do not change anything from its parents in the result. + + + See also INCOMPATIBLE OPTIONS below. --allow-empty-message:: By default, rebasing commits with an empty message will fail. This option overrides that behavior, allowing commits with empty messages to be rebased. + + + See also INCOMPATIBLE OPTIONS below. --skip:: Restart the rebasing process by skipping the current patch. @@@ -271,6 -275,8 +275,8 @@@ branch on top of the branch conflict happens, the side reported as 'ours' is the so-far rebased series, starting with , and 'theirs' is the working branch. In other words, the sides are swapped. + + + See also INCOMPATIBLE OPTIONS below. -s :: --strategy=:: @@@ -280,8 -286,10 +286,10 @@@ + Because 'git rebase' replays each commit from the working branch on top of the branch using the given strategy, using - the 'ours' strategy simply discards all patches from the , + the 'ours' strategy simply empties all patches from the , which makes little sense. + + + See also INCOMPATIBLE OPTIONS below. -X :: --strategy-option=:: @@@ -289,6 -297,8 +297,8 @@@ This implies `--merge` and, if no strategy has been specified, `-s recursive`. Note the reversal of 'ours' and 'theirs' as noted above for the `-m` option. + + + See also INCOMPATIBLE OPTIONS below. -S[]:: --gpg-sign[=]:: @@@ -324,17 -334,21 +334,21 @@@ and after each change. When fewer lines of surrounding context exist they all must match. By default no context is ever ignored. + + + See also INCOMPATIBLE OPTIONS below. - -f:: + --no-ff:: --force-rebase:: - Force a rebase even if the current branch is up to date and - the command without `--force` would return without doing anything. + -f:: + Individually replay 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. + - You may find this (or --no-ff with an interactive rebase) 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.html[revert-a-faulty-merge How-To] for details). + 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.html[revert-a-faulty-merge How-To] for + details). --fork-point:: --no-fork-point:: @@@ -355,19 -369,22 +369,22 @@@ default is `--no-fork-point`, otherwis --whitespace=