estoy totalmente de amor git add -p
y git stash
pero a veces tengo el siguiente problema, que se reproduce mediante la siguiente secuencia de comandos:alijo Git y editado trozos
git add -p my_file
: entonces editar un trozo manualmente (usandoe
) debido a la división que sugiere git no me convienegit stash --keep-index
: entonces hacer algunas pruebas, y si las pruebas pasan no cometogit stash pop
: ahora el problema se produce: el archivomy_file
se considera ahora como en conflicto, y Git tiene completamente metido con mi trozo editado, así que tengo que editar el archivo, quitar las marcas de combinación inútiles, y ejecutargit add my_file
seguido porgit reset HEAD
Estoy desconcertado porque esto ocurre solo cuando se edita un trozo de forma manual. No veo cómo esto debería hacer ninguna diferencia en absoluto.
para reproducir el problema:
touch newfile
git add newfile
git commit -m 'newfile'
- añadir dos líneas en el archivo
git add -p newfile
- edición del h unk (
e
), eliminar uno de la línea en el trozo, a continuación, salga git add (q
) git stash --keep-index
git stash pop
Ahora el archivo newfile
encuentra en estado sin combinar. Tenga en cuenta, una vez más, que el problema solo se produce con trozos editados manualmente. No hay problema alguno con los comandos anteriores si uno no edita ningún trozo manualmente.
Dicho sea de paso, el estado anterior del archivo se encuentra en la tercera etapa (git show :3:newfile
), y la versión anterior está en la segunda etapa (git show :2:newfile
). Así que pude, gracias a la magia negra de Git, lograr poner la segunda etapa en este índice, y la tercera etapa en el informe de trabajo ... pero no sé cómo hacerlo, así que lo hago a mano. :-(
Lo intenté varias veces, pero no puedo reproducir su problema con la versión de Git 1.7.2.3. Qué versión estás usando? –
Estoy usando la versión 1.7.3.1 en Mac OS X. –
Intenté de nuevo con diferentes ediciones al azar en 'git add -p', y siempre funciona bien para mí. Estoy en Linux por cierto. Suena como un error, recomendaría preguntar en la lista de correo git, son bastante receptivos. –