Estoy tratando de usar git add --interactive
para agregar selectivamente algunos cambios a mi índice, pero continuamente recibo el mensaje "Tu trozo editado no se aplica. Edita de nuevo ...". Recibo este mensaje incluso si elijo la opción e, e inmediatamente guardo / cierro mi editor. En otras palabras, sin editar el trozo en absoluto, el parche no se aplica.
Aquí está el ejemplo exacto que estoy usando (estoy tratando de armar una pequeña demostración):
Archivo original:
first change
second change off branch
third change off branch
second change
third change
fourth change
Archivo nuevo:
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
Estoy tratando de mostrar cómo usar git add --interactive
para agregar solo la línea "corrección de error 1" al índice. Al ejecutar el complemento interactivo en el archivo, elijo el modo de parche. Me 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
Respondo con split, seguido de "no" para aplicar el primer trozo. El segundo trozo, trato de editar. Originalmente intenté eliminar el resultado final, eso no funcionó. Dejar al galán solo por completo tampoco funciona, y no puedo entender por qué.
-
's al principio de líneas que no existen en el archivo para empezar; es una diferencia y no puede eliminar líneas que aún no están allí. Entonces, si una línea en la diferencia comienza con+
y la cambia a-
git, ¿se vuelve WTF? porque ahora la línea marcada para ser eliminada no existe para empezar (en su lugar, esa línea fue marcada para agregar, y cuando una línea marcada para agregar está marcada para eliminación, git no puede eliminar una línea que aún no está en el archivo) .