在交互式变基期间编写提交消息时显示差异

Show diff when writing commit messages during an interactive rebase

进行常规 git 提交时,git commit --verbose 在编写提交消息时会在文本编辑器中显示差异。

假设我正在做一个交互式变基(git rebase --interactive)来编辑以前的提交。为了 'continue' 变基,我 运行 git rebase --continue。这将打开一个用于编辑提交消息的文本编辑器,但它不会显示差异。对提交进行更改后,如何在交互式变基期间(重新)写入提交消息时显示差异?

git rebase --continue --verbose 似乎不是一个有效的命令...

在变基过程中,

git diff

显示尚未添加到提交中的更改,

git diff --cached 

显示您提交的新更改,并且

git show

显示您正在编辑的提交中的原始更改。

你可以这样做:

git -c commit.verbose=true rebase --continue

如果您厌倦了复制该命令,您可以创建一个 ~/.gitconfig:

中的别名
[alias]
    myrebasecontinue = "!git -c commit.verbose=true rebase --continue"

现在就做:

git myrebasecontinue

显示差异:

git -c commit.verbose=true rebase --continue

要使所有提交变得冗长而不必每次都指定 -c commit.verbose=true,请将此添加到 ~/.gitconfig:

[commit]
    verbose = true

参考:man git-config.