Я намагаюся git add --interactive
вибірково додати деякі зміни до свого індексу, але постійно отримую повідомлення "Ваш відредагований шматок не застосовується. Редагувати ще раз ...". Я отримую це повідомлення, навіть якщо вибираю опцію e, і негайно зберігаю / закриваю свій редактор. Іншими словами, без жодного редагування куска, патч не застосовується.
Ось точний приклад, який я використовую (я намагаюся скласти невеличку демонстрацію):
Оригінальний файл:
first change
second change off branch
third change off branch
second change
third change
fourth change
Новий файл:
Change supporting feature 1
first change
second change off branch
third change off branch
second change
third change
fourth change
bug fix 1
change supporting feature 1
Я намагаюся показати, як використовувати git add --interactive
для додавання до індексу лише рядок "виправлення помилок 1". Запускаючи інтерактивне додавання до файлу, я вибираю режим виправлення. Це дарує мені
diff --git a/newfile b/newfile
index 6d501a3..8b81ae9 100644
--- a/newfile
+++ b/newfile
@@ -1,6 +1,9 @@
+Change supporting feature 1
first change
second change off branch
third change off branch
second change
third change
fourth change
+bug fix 1
+change supporting feature 1
Я відповідаю розділенням, після чого "ні", щоб застосувати перший шматок. Другий кусень, я намагаюся редагувати. Спочатку я намагався видалити нижній рядок - це не спрацювало. Залишити кусень у спокої теж повністю не працює, і я не можу зрозуміти, чому.
-
символи на початку рядків, які не існують у файлі; це різниця, і вона не може видалити рядки, яких там ще немає. Отже, якщо рядок у різниці починається з,+
і ви змінюєте його на-
git, переходить у WTF? тому що зараз рядок, позначений для видалення, не існує для початку (натомість цей рядок був позначений для додавання, а коли рядок, позначений для додавання, позначений для видалення, git не може видалити рядок, якого ще немає у файлі) .