Некоторые варианты в интерактивном режиме не работают на git

Я просто пробую интерактивный режим с проверкой фиксации

git checkout -p <commit_sha1>

Есть разные варианты

Применить этот блок для индекса и рабочего дерева [y,n,q,a,d,/,s,e,?]?

и нажав ? это показывает еще больше вариантов

y - применить этот кусок к индексу и рабочему дереву
n - не применять этот кусок для индекса и рабочего дерева
q - выйти; не применять этот ломоть, ни один из оставшихся
a - применить этот кусок и все последующие фрагменты в файле
d - не применять ни этот блок, ни какие-либо более поздние фрагменты в файле
g - выберите лом, чтобы перейти
/ - поиск ломтя, соответствующего заданному регулярному выражению
j - оставить этот кусок нерешенным, увидеть следующий нерешенный кусок
J - оставь этот кусок нерешенным, смотри следующий кусок
k - оставить этот кусок нерешенным, см. предыдущий нерешенный кусок
K - оставить этот кусок нерешенным, см. Предыдущий кусок
s - разделить текущий кусок на более мелкие фрагменты
e - вручную редактировать текущий блок? - справка по печати

Я на самом деле пытался всех родственников нерешительные глыбы, и ни один из них, кажется, не работает. После выбора, независимо от того, нажимаю я j/J/k/K или s, он всегда возвращается к одному и тому же файлу и снова запрашивает выбор.

Пока все остальные (y / n / q / a / d /.. и т . Д.) Работают.

Есть ли причина для этого?

1 ответ

Решение
Apply this hunk to index and worktree [y,n,q,a,d,/,s,e,?]?

мерзавец только дает вам выбор y,n,q,a,d,/,s,e,?, потому что снимок файла имеет только 1 блок. Справка распечатывает все варианты, которые могут быть доступны, но в вашем случае у вас нет возможности пропустить кусок.

Кусок - это одна разница в файле. Так что Git хочет сказать вам, что в этом файле есть только один diff. Таким образом, вы не можете пропустить это и перейти к следующему.

Например... если я создам текстовый файл и вставлю в него ваш вопрос, чтобы я получил эту разницу

@@ -1,9 +1,28 @@
 I'm just trying the interactive mode with a commit checkout

+    git checkout -p <commit_sha1>
+
 There are different choices available

+    Apply this hunk to index and worktree [y,n,q,a,d,/,s,e,?]?
+
 and pressing ? it shows even more options

+    y - apply this hunk to index and worktree
+    n - do not apply this hunk to index and worktree
+    q - quit; do not apply this hunk nor any of the remaining ones
+    a - apply this hunk and all later hunks in the file
+    d - do not apply 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
+
 I actually tried all the relatives to undecided hunks, and none of them seem to work. After the choice, no matter if I press j/J/k/K or s it always returns to the same file and as
k again for a choice.

 While all the others (y/n/q/a/d/.. etc.) work.

Чем интерактивная проверка позволила бы мне разделить фактический кусок на меньшие фрагменты.

Apply this hunk to index and worktree [y,n,q,a,d,/,s,e,?]? s

После этого вы можете выбрать, какой блок применить, а какой пропустить.

    Split into 3 hunks.
@@ -1,4 +1,6 @@
 I'm just trying the interactive mode with a commit checkout

+    git checkout -p <commit_sha1>
+
 There are different choices available

Apply this hunk to index and worktree [y,n,q,a,d,/,j,J,g,e,?]? j

Пропускать (j) и переходите к следующему.

@@ -3,4 +5,6 @@
 There are different choices available

+    Apply this hunk to index and worktree [y,n,q,a,d,/,s,e,?]?
+
 and pressing ? it shows even more options

Apply this hunk to index and worktree [y,n,q,a,d,/,k,K,j,J,g,e,?]?
Другие вопросы по тегам