diff options
author | Junio C Hamano <gitster@pobox.com> | 2020-04-22 13:43:00 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-04-22 13:43:00 -0700 |
commit | d6d561db1c0a14e8b89149694c0c662096c5fc9d (patch) | |
tree | d0180fa78b9b0c5d4c03e843686cdffcac8647e2 /Documentation/git-rebase.txt | |
parent | Merge branch 'en/rebase-no-keep-empty' (diff) | |
parent | rebase --merge: optionally skip upstreamed commits (diff) | |
download | tgif-d6d561db1c0a14e8b89149694c0c662096c5fc9d.tar.xz |
Merge branch 'jt/rebase-allow-duplicate'
Allow "git rebase" to reapply all local commits, even if the may be
already in the upstream, without checking first.
* jt/rebase-allow-duplicate:
rebase --merge: optionally skip upstreamed commits
Diffstat (limited to 'Documentation/git-rebase.txt')
-rw-r--r-- | Documentation/git-rebase.txt | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt index 206e1db918..bed500f151 100644 --- a/Documentation/git-rebase.txt +++ b/Documentation/git-rebase.txt @@ -279,7 +279,8 @@ See also INCOMPATIBLE OPTIONS below. + Note that commits which start empty are kept (unless --no-keep-empty is specified), and commits which are clean cherry-picks (as determined -by `git log --cherry-mark ...`) are always dropped. +by `git log --cherry-mark ...`) are detected and dropped as a +preliminary step (unless --reapply-cherry-picks is passed). + See also INCOMPATIBLE OPTIONS below. @@ -304,6 +305,24 @@ see the --empty flag. + See also INCOMPATIBLE OPTIONS below. +--reapply-cherry-picks:: +--no-reapply-cherry-picks:: + Reapply all clean cherry-picks of any upstream commit instead + of preemptively dropping them. (If these commits then become + empty after rebasing, because they contain a subset of already + upstream changes, the behavior towards them is controlled by + the `--empty` flag.) ++ +By default (or if `--no-reapply-cherry-picks` is given), these commits +will be automatically dropped. Because this necessitates reading all +upstream commits, this can be expensive in repos with a large number +of upstream commits that need to be read. ++ +`--reapply-cherry-picks` allows rebase to forgo reading all upstream +commits, potentially improving performance. ++ +See also INCOMPATIBLE OPTIONS below. + --allow-empty-message:: No-op. Rebasing commits with an empty message used to fail and this option would override that behavior, allowing commits @@ -604,6 +623,7 @@ are incompatible with the following options: * --exec * --no-keep-empty * --empty= + * --reapply-cherry-picks * --edit-todo * --root when used in combination with --onto @@ -1020,7 +1040,8 @@ Only works if the changes (patch IDs based on the diff contents) on 'subsystem' did. In that case, the fix is easy because 'git rebase' knows to skip -changes that are already present in the new upstream. So if you say +changes that are already present in the new upstream (unless +`--reapply-cherry-picks` is given). So if you say (assuming you're on 'topic') ------------ $ git rebase subsystem |