When doing a regular git commit, git commit --verbose
shows the diff in the text editor when writing the commit message.
Suppose I am doing an interactive rebase (git rebase --interactive
) to edit previous commits. To 'continue' rebasing, I run git rebase --continue
. This opens a text editor for editing the commit message, but it does not show the diff. After making changes to a commit, how can I display the diff when (re)writing the commit message during an interactive rebase?
git rebase --continue --verbose
doesn't seem like a valid command...
To show the diff:
git -c commit.verbose=true rebase --continue
To make all commits verbose without having to specify -c commit.verbose=true
every time, add this to ~/.gitconfig
:
[commit]
verbose = true
Reference: man git-config
.
You can do:
git -c commit.verbose=true rebase --continue
If you get tired copying that command you can create an
alias in your ~/.gitconfig
:
[alias]
myrebasecontinue = "!git -c commit.verbose=true rebase --continue"
And now just do:
git myrebasecontinue
In the middle of a rebase,
git diff
shows you the changes not yet added to the commit,
git diff --cached
shows you the new changes you committed, and
git show
shows you the original changes in the commit you're editting.