Próbuję użyć git add --interactive
wybiórczo dodać pewne zmiany do mojego indeksu, ale ciągle otrzymuję komunikat „Twój edytowany fragment nie ma zastosowania. Edytuj ponownie ...”. Otrzymuję tę wiadomość, nawet jeśli wybiorę opcję e i natychmiast zapiszę / zamknę mój edytor. Innymi słowy, bez jakiejkolwiek edycji kawałka łatka nie ma zastosowania.
Oto dokładny przykład, którego używam (próbuję stworzyć małe demo):
Oryginalny plik:
first change
second change off branch
third change off branch
second change
third change
fourth change
Nowy plik:
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
Próbuję pokazać, jak używać git add --interactive
tylko do dodania wiersza „poprawka błędu 1” do indeksu. Uruchamiając interaktywny dodatek na pliku, wybieram tryb łatki. Przedstawia mi to
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
Odpowiadam rozdzieleniem, po którym następuje „nie”, aby zastosować pierwszy fragment. Drugi kawałek, próbuję edytować. Początkowo próbowałem usunąć dolną linię - to nie zadziałało. Całkowite pozostawienie przystojniaka w spokoju też nie działa i nie mogę zrozumieć, dlaczego.
-
znaków na początku linii, których nie ma w pliku; jest to różnica i nie może usunąć linii, których jeszcze tam nie ma. Więc jeśli wiersz w pliku różnicowym zaczyna się od+
i zmienisz go na-
git, przechodzi do WTF? ponieważ teraz linia oznaczona do usunięcia nie istnieje na początku (zamiast tego ta linia została oznaczona do dodania, a kiedy linia zaznaczona do dodania jest oznaczona do usunięcia, git nie może usunąć linii, której nie ma jeszcze w pliku) .