Git rebase: Difference between revisions
No edit summary |
(→-i) |
||
Line 35: | Line 35: | ||
<syntaxhighlight lang='bash'> | <syntaxhighlight lang='bash'> | ||
rebase -i HEAD~10 | rebase -i HEAD~10 | ||
</syntaxhighlight> | |||
To include all the commits from HEAD to, but excluding a specific commit, use: | |||
<syntaxhighlight lang='bash'> | |||
rebase -i <commit-sha-of-the-first-commit-NOT-to-be-included> | |||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 03:00, 13 June 2021
Internal
Overview
git rebase reapplies commits on top of another base tip, removing the original commits. For more details on how rebasing works, and some concrete examples, see:
Options
--onto
git rebase --onto <newbase>
Starting point at which to create the new commits. If the --onto option is not specified, the starting point is <upstream> (what does that mean?). It may be any valid commit, not just an existing branch name.
--fork-point
The option that allows specifying the ancestor commit after which all commits will be rebased. Normally, this is implicitly calculated by git with:
git merge-base --fork-point <upstream> <branch>
command. If fork-point ends up being empty as result of this command, <upstream> will be used as fallback.
-i
Interactive rebase.
To include a specific number of commits, going back from HEAD, use HEAD~count
rebase -i HEAD~10
To include all the commits from HEAD to, but excluding a specific commit, use:
rebase -i <commit-sha-of-the-first-commit-NOT-to-be-included>