【问题标题】:Splitting a hunk with magit用 magit 分割一个大块头
【发布时间】:2012-03-20 06:50:46
【问题描述】:

我有 2 个编辑非常接近(因此是同一个大块的一部分),我想单独提交。是否可以从 magit 中拆分一个大块?

【问题讨论】:

    标签: emacs magit


    【解决方案1】:

    您可以使用 Ctrl+Space (C-SPC) 正确设置标记,magit 只会提交选定的部分。

    【讨论】:

    • 我总是将标记设置在区域的底部,然后将点移动到顶部以暂存或取消暂存区域,因为我遇到了问题(我不记得具体的) 在过去反其道而行之。 YMMV。
    • 回复:我之前的评论,我最近读到了这样做的原因,即当您取消/暂存该区域时,点必须在您正在操作的区域 .当然,您可以使用C-x C-x 交换积分并标记您是否以相反的方式完成。
    • 使用瞬态标记模式时的行为是否有所不同?因为我总是从上到下选择,从来没有遇到过问题。
    • 这对我来说是不够的 (C-SPC)。我必须再按一次C-SPC 才能激活transient-mark-mode
    • 要明确:magit 只会提交任何被选中的内容。 如何选择并不重要,例如,我使用Shift + <arrows> 选择一部分,然后按s 来展示选定的部分。
    【解决方案2】:

    您也可以使用 -+ 来减少或增加 diff 中大块的范围(以及 0 重置),但是dominikh 的回答是最重要的。

    【讨论】:

    • 这对我不起作用,是否已在较新版本的 magit 中删除,或者这是我的设置所特有的?
    • Mike H-R:假设您在 magit-status 缓冲区中,那么这应该仍然适用于 AFAIK。
    • 是的,我弄错了,您需要在以@@(大块信息行)开头的行上按 + 或 -,而不是像我一直尝试的那样在大块内。
    【解决方案3】:

    Magit 重用 diff-mode,但不要在其 magit-revision-mode 中公开许多 diff-mode 命令,就像 VC 包一样。

    例如,您可以在diff-mode 中调用diff-split-hunk,通常是C-c C-s

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-07
      • 1970-01-01
      • 1970-01-01
      • 2021-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多