Show diff when writing commit messages during an i

2020-07-06 03:37发布

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...

3条回答
甜甜的少女心
2楼-- · 2020-07-06 04:21

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.

查看更多
戒情不戒烟
3楼-- · 2020-07-06 04:34

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.

查看更多
不美不萌又怎样
4楼-- · 2020-07-06 04:35

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
查看更多
登录 后发表回答