How to do a rebase with git gui?
I know how to do a git rebase from the command line, but how do you do it with the official git-gui?
Add this to the .gitconfig
file in your home directory to add rebase commands to the Tools menu:
[guitool "Rebase onto..."]
cmd = git rebase $REVISION
revprompt = yes
[guitool "Rebase/Continue"]
cmd = git rebase --continue
[guitool "Rebase/Skip"]
cmd = git rebase --skip
[guitool "Rebase/Abort"]
cmd = git rebase --abort
[guitool "Pull with Rebase"]
cmd = git pull --rebase
In git-gui
:
- Go to
Tools -> Add
and then enter a custom command i.e.git rebase master
. - Select Add globally to have this option appear for all repositories. (It will write the configuration to your
~/.gitconfig
for you, as @Ted-Percival mentioned in his answer).
You can do a full interactive rebase with git gui
, complete with commit selection, rewording and conflict resolution! In addition to Ted Percival's answer, Add this to your ~/.gitconfig
:
[guitool "Rebase interactive"]
cmd = EDITOR=gvim git rebase -i $REVISION
revprompt = yes
You must use a graphical editor -- plain old vim
won't work, but gvim
will. You may use any gui editor, I use nedit
for example. A separate window of this editor will pop-up any time you need to input something: initially selecting commits, rewording commit messages (whether for reword or squash commits), etc.