gpt4 book ai didi

emacs - 如何使用 Magit 比较单个文件?

转载 作者:行者123 更新时间:2023-12-02 12:15:19 27 4
gpt4 key购买 nike

假设我对 git 存储库中的未耦合文件进行了许多不相关的更改。我想分别审查并提交每个文件。

我跑magit-status ,并获取已更改文件的列表。但我能找到的唯一 Magit diff 命令( dD )会比较整个修订版本,而不是单个文件。

我想要 git diff <filename> 的输出,但在 Magit diff 缓冲区中。我怎样才能让magit只比较一个文件?

最佳答案

Magit 使您能够直接从 magit-status 缓冲区“单独查看和提交每个文件”,而不需要任何单独的差异缓冲区。

您只需展开您感兴趣的文件(使用TAB,它会显示该文件所在位置的差异);然后你可以用 s 来暂存你想要提交的部分(整个文件,或者单个 block ,甚至是标记的区域)到暂存(或 u取消暂存)。重复该提交中涉及的所有更改,一旦所有必要的内容都已准备就绪,请按 c 开始提交。

您可能更喜欢通过使用C-TAB(重复)获得的可见性循环行为,而不是默认使用TAB获得的简单切换行为kbd>.

<小时/>

如果您确实想在单独的缓冲区中查看文件的差异,您可以通过直接调用 magit-diff-buffer-file 或使用 "magit-file-popup 中的“diff”选项 (d)。例如:

(global-set-key (kbd "C-c m d") 'magit-diff-buffer-file)
(global-set-key (kbd "C-c m f") 'magit-file-popup)
<小时/>

另请注意下面@assem 的评论:

You might also be interested in magit-ediff which is bound to e by default, and opens an ediff session for the diff/file at point.

<小时/>

Emacs 默认情况下可用的其他一些替代方案(即不是 Magit)是:

  • C-xv= 调用 vc-diff
  • M-x vc-ediff 相当于 ediff
  • M-x ediff-revision 创建具有更多选项的 ediff session

我将 vc-ediff 绑定(bind)到 C-xvC-= ,以便两个变体具有相似的 key 绑定(bind)。

关于emacs - 如何使用 Magit 比较单个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17798109/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com