Почему параметр разделения отсутствует в git add -p?

Попытка разделить кусок на более мелкие с помощью параметра git add -p и split, но весь файл отображается как один кусок, и я не могу его разбить.

  • Я могу редактировать, но удаление строк приводит к сбою патча.
  • git help add говорит, что мне нужно разделить, и я вспоминаю его использование, но в моем текущем примере опция не появляется в подсказке.
  • Когда я выбираю вариант справки, печатается, в котором говорится, что я могу выбрать s для разделения: - [

Git версия: 1.9.1. Xubuntu 14, oh-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

Ответ 1

Причина, по которой он не работает, заключается в том, что ваш кусок уже меньше, чем git автоматически получит его. Split работает только в том случае, если нет измененных строк, разделяющих измененные строки, достаточно близко, чтобы git предполагал, что они принадлежат друг другу.

Чтобы добиться того, чего вы хотите, вам нужно вручную отредактировать патч

Ответ 2

Почему в git add -p отсутствует опция split git add -p?

Вам не придется задавать этот вопрос с помощью Git 2.17 (Q2 2018), поскольку справка по одной клавише теперь предоставляется только для ключей, которые включены (например, справка для " / " не будет отображаться, когда имеется только один блок).

См. Коммит 4bdd6e7, коммит 88f6ffc, коммит 01a6966 (13 февраля 2018 г.) Филиппа Вуда (phillipwood).
(Объединено Junio C Hamano - gitster - в коммите 60f8b89, 06 марта 2018 г.)

Первый:

add -p: улучшить сообщения об ошибках

Если пользователь нажимает клавишу, которая в данный момент не активна, объясните, почему она не активна, а не просто перечислите все клавиши. Он уже сделал это для некоторых ключей, этот патч делает то же самое для тех, которые еще не были обработаны.

А также:

add -p: отображать справку только для активных клавиш

Если пользователь нажимает клавишу, которую add -p не ожидал, он печатает список привязок клавиш.
Хотя в подсказке перечислены только активные привязки, справка была напечатана для всех привязок.

Исправьте это, используя список ключей в подсказке, чтобы отфильтровать справку.
Обратите внимание, что список ключей уже был передан help_patch_cmd(), поэтому никаких изменений в сайте вызовов не требуется.