Sto cercando di utilizzare git add --interactive
per aggiungere selettivamente alcune modifiche al mio indice, ma ricevo continuamente il messaggio "Il tuo pezzo modificato non si applica. Modifica di nuovo ...". Ricevo questo messaggio anche se scelgo l'opzione e e salvo / chiudo immediatamente il mio editor. In altre parole, senza modificare affatto il pezzo, la patch non si applica.
Ecco l'esempio esatto che sto usando (sto cercando di mettere insieme una piccola demo):
File originale:
first change
second change off branch
third change off branch
second change
third change
fourth change
Nuovo file:
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
Sto cercando di mostrare come utilizzare git add --interactive
per aggiungere solo la riga "bug fix 1" all'indice. Eseguendo l'aggiunta interattiva sul file, scelgo la modalità patch. Mi presenta
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
Rispondo con split, seguito da "no" per applicare il primo pezzo. Il secondo pezzo, provo a modificare. Inizialmente ho provato a cancellare la linea di fondo, ma non ha funzionato. Anche lasciare il pezzo da solo completamente non funziona e non riesco a capire perché.
-
all'inizio delle righe che non esistono nel file per cominciare; è un diff e non può eliminare righe che non sono già presenti. Quindi se una riga nel diff inizia con+
e la cambi in-
git diventa WTF? perché ora la riga contrassegnata per la rimozione non esiste per cominciare (invece quella riga è stata contrassegnata per l'aggiunta, e quando una riga contrassegnata per l'aggiunta è contrassegnata per la rimozione git non può rimuovere una riga che non è già nel file) .