为什么在git add -p中缺少split选项?

时间:2016-06-25 15:12:16

标签: git git-add

尝试通过git add -psplit选项将大块分成较小的大块,但整个文件显示为一个大块,我无法拆分它。

  1. 我可以编辑,但删除行会导致修补程序失败。
  2. git help add说我应该拆分,我记得使用它,但在我目前的例子中,选项不会出现在提示中。
  3. 当我选择打印选项时,会说我可以选择要拆分: - [
  4. Git版本:1.9.1。 Xubuntu 14,哦-my-zsh。大块头不是一行,而是多行。任何想法为什么会这样?

    使用更多数据编辑,这是控制台日志:

    +last line of long text 
    Stage this hunk [y,n,q,a,d,/,e,?]? s
    y - stage this hunk
    n - do not stage this hunk
    q - quit; do not stage this hunk nor any of the remaining ones
    a - stage this hunk and all later hunks in the file
    d - do not stage this hunk nor any of the later hunks in the file
    g - select a hunk to go to
    / - search for a hunk matching the given regex
    j - leave this hunk undecided, see next undecided hunk
    J - leave this hunk undecided, see next hunk
    k - leave this hunk undecided, see previous undecided hunk
    K - leave this hunk undecided, see previous hunk
    s - split the current hunk into smaller hunks
    e - manually edit the current hunk
    ? - print help
    

2 个答案:

答案 0 :(得分:22)

它无法正常工作的原因是因为你的大块头已经小了,git会自动获得它。只有当未更改的行分隔更改的行足够接近git假定它们属于一起时,才能进行拆分。

为了实现您的目标,您需要manually edit the patch

答案 1 :(得分:2)

  

为什么git add -p中缺少拆分选项?

你不必在Git 2.17(2018年第二季度)中提出这个问题,因为单键帮助现在仅针对已启用的键(例如帮助'{{1}当只有一个大块时,将不会显示。}

commit 4bdd6e7commit 88f6ffccommit 01a6966Phillip Wood (phillipwood)(2018年2月13日)。
(由Junio C Hamano -- gitster --合并于commit 60f8b89,2018年3月6日)

首先:

  

/:改进错误消息

     

如果用户按下当前未激活的键,请解释原因   它不是主动而不是仅列出所有键。它已经做到了   对于某些键,这个补丁对那些补丁也是如此   尚未处理。

  

add -p:仅显示活动密钥的帮助

     

如果用户按下add -p不期望的键,则打印   密钥绑定列表   虽然提示仅列出活动绑定,但是为所有绑定打印了帮助。

     

通过使用提示中的键列表来过滤帮助来解决此问题   请注意,密钥列表已由呼叫者传递给add -p,因此呼叫站点无需更改。