Не так давно я спросил this question. Я получил ответ, но это не решило проблему, с которой я столкнулся, поэтому мне было предложено создать новый вопрос более подробно.git bash shell на Windows «Ваш отредактированный кусок не применяется» (продолжение)
Чтобы повторить попытку, я получаю сообщение об ошибке при попытке вручную отредактировать кусок в оболочке Git bash в Windows при использовании git add -p
(в частности, я нажимаю e
при запросе интерактивной команды). Это открывает файл редактирования для hunk в Notepad ++ (мой редактор .txt по умолчанию). Даже без внесения каких-либо изменений в этот файл, я дал ошибку:
Your edited hunk does not apply
как минимальный пример, я создал репозиторий, значение git config core.autocrlf
является false
(я также попробовал следующий со значением, установленным на true
). У меня есть .txt-файл (foobar.txt
), я пишу foo
и фиксирую свои изменения. Затем я меняю содержимое файла на:
foo
bar
, а затем закройте файл. то я git add -p foobar
, и я запрос (не знаю, почему разница не получилось чисто в этом случае, но в целом работает для меня):
diff --git a/foobar b/foobar
index 1910281..a907ec3 100644
--- a/foobar
+++ b/foobar
@@ -1 +1,2 @@
-foo
\ No newline at end of file
+foo
+bar
\ No newline at end of file
Stage this hunk [y,n,q,a,d,/,e,?]?
, к которому я отвечаю e
. Опять же, без внесения каких-либо изменений, я получаю ошибку:
error: patch failed: foobar:1
error: foobar: patch does not apply
Your edited hunk does not apply. Edit again (saying "no" discards!) [y/n]?
Конечно, я также пытался вносить изменения в ручной ломоть редактирования файла; например, редактировать файл будет изначально выглядеть следующим образом:
# Manual hunk edit mode -- see bottom for a quick guide
@@ -1 +1,2 @@
-foo
\ No newline at end of file
+foo
+bar
\ No newline at end of file
# ---
# To remove '-' lines, make them ' ' lines (context).
# To remove '+' lines, delete them.
# Lines starting with # will be removed.
#
# If the patch applies cleanly, the edited hunk will immediately be
# marked for staging. If it does not apply cleanly, you will be given
# an opportunity to edit again. If all lines of the hunk are removed,
# then the edit is aborted and the hunk is left unchanged.
Образец редактировать бы:
# Manual hunk edit mode -- see bottom for a quick guide
@@ -1 +1,1 @@
-foo
\ No newline at end of file
+foo
\ No newline at end of file
# ---
# To remove '-' lines, make them ' ' lines (context).
# To remove '+' lines, delete them.
# Lines starting with # will be removed.
#
# If the patch applies cleanly, the edited hunk will immediately be
# marked for staging. If it does not apply cleanly, you will be given
# an opportunity to edit again. If all lines of the hunk are removed,
# then the edit is aborted and the hunk is left unchanged.
Еще один интересный момент в том, что у меня есть освобождение разработчика от Windows, которая позволяет мне использовать «Bash on Ubuntu on Windows». Используя git add -p
с помощью этой утилиты, а затем попытайтесь вручную отредактировать ханки, это сработает ... так что мой вопрос в том, почему он не работает на оболочке Git bash для меня ...?