使用 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)
考虑一个 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)