使用magit查看上下文中的更改

使用magit查看上下文中的更改,git,emacs,magit,Git,Emacs,Magit,考虑仅通过两次键绑定调整启动的magit会话 (global-set-key (kbd "C-x g") 'magit-status) (global-set-key (kbd "C-x M-g") 'magit-dispatch) 现在假设在这个会话中,我只是在仔细阅读一个存储库,没有更改/阶段/提交序列。现在我看到一个文件.c // a: This line existed in commit A. // a: This line existed in commit A. // b: Th

考虑仅通过两次键绑定调整启动的
magit
会话

(global-set-key (kbd "C-x g") 'magit-status)
(global-set-key (kbd "C-x M-g") 'magit-dispatch)
现在假设在这个会话中,我只是在仔细阅读一个存储库,没有更改/阶段/提交序列。现在我看到一个
文件.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签出

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

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


如果没有
magit
,则可以显示当前文件与repo之间的差异。我在这里询问是否可以在一系列的
git签出过程中查看更改,使用
diff-hl-flydiff
是否可以与
magit
很好地共存,或者不使用
magit
,是否内置了
git签出
任何东西

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

如果您仅使用C-cM-gl(或M-x
magit日志缓冲文件
)查看一个文件的日志,则magit将假定您要对同一文件进行ediff,并且不会提示您


要了解如何使用ediff:C-hig
(ediff)

无需
git checkout
任何东西

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

如果您仅使用C-cM-gl(或M-x
magit日志缓冲文件
)查看一个文件的日志,则magit将假定您要对同一文件进行ediff,并且不会提示您


要了解如何使用ediff:C-hig
(ediff)

Nice。也许唯一需要注意的是,如果您向观众展示您的更改,其中一个区块很大,但您想动态地讨论其中的元素,那么您必须仔细调整您所在区域的颜色,以便它们在ediff的颜色之上保持可见(可能在通过投影仪之后),并脱离ediff上下文(由M-)讨论块的子集,然后返回继续。很好。可能唯一的问题是,如果您正在向观众展示您的更改,并且一个块很大,但您希望动态讨论其中的元素,您必须仔细调整区域的颜色,以便它们保持可见(可能在经过投影仪之后)在ediff的颜色之上,以及走出ediff上下文(通过M-)讨论块的子集,然后返回继续。