使用 magit 查看上下文的变化

Viewing changes in context with magit

考虑一个 magit 会话仅通过两个 recommended 键绑定调整开始。

(global-set-key (kbd "C-x g") 'magit-status)
(global-set-key (kbd "C-x M-g") 'magit-dispatch)

现在假设在这个会话中我只是仔细阅读一个存储库,没有 change/stage/commit 序列。现在我到达 file.c

// a: This line existed in commit A.
// a: This line existed in commit A.
// b: This is a new line added in commit B.
// b: This is a new line added in commit B.

为了了解每次提交都做了什么,我逐步 git checkout

在提交 B 时,我希望在上下文中看到新插入的两行(上面的 b),可能是通过突出显示的背景,或者是通过边距指示器。

是否可以使用 magit 查看上下文中的更改,或者 git diff 是最好的方法吗?

Without magit diff-hl-flydiff 已经可以显示当前文件与 repo 有何不同。我在这里询问是否可以查看一系列 git checkout 期间的更改,如果 diff-hl-flydiff 可以与 magit 很好地共存,或者如果它内置于 magit ].

不需要git checkout任何东西。

我建议使用 e 为您感兴趣的提交调用 magit-ediff-dwim(或 Ec 调用 magit-ediff-show-commit)。如果提交涉及多个文件,它会提示您(完成)比较文件。然后它会跳转到 ediff,您可以在其中细读该提交差异在上下文中的更改。

如果您只查看一个文件的日志,使用 C-cM-gl (或 M-x magit-log-buffer-file) 然后 Magit 会假设你想要 ediff 同一个文件,并且不会提示你。

学习如何使用 ediff:C-hig (ediff)