¿Cómo hago cambios en el modo git accept sin aceptar todos los cambios de texto?
Pregunta
Tengo el problema opuesto de " ¿Cómo hago que Git ignore los cambios de modo de archivo (chmod)? ? " Tengo un archivo en el que he cambiado el permiso ejecutable, pero también hay algunos cambios de texto, y quiero cometer el primero pero no el segundo. Es esto posible con git?
(En realidad, he realizado algunos cambios de texto que quiero confirmar junto con el cambio de permiso ejecutable, y otros que no quiero cometer)
Actualizar: Desglosando los cambios de texto en el archivo, y luego haciendo git add -p
de nuevo e incorporando algunos de los cambios de texto logrados para obtener el cambio de modo
en puesta en escena. (Mi versión de git es 1.5.4.3)
Solución
git add -i
te permitirá agregar de forma selectiva algunos fragmentos de un archivo al índice. No sé si es sensible o no a los permisos, pero si tuviera que agregar un fragmento después de la operación chmod
, podría terminar en el índice correctamente, incluso sin actualizar explícitamente el permiso.
Otros consejos
Debes poder hacer:
git update-index --chmod=(+|-)x <file>
para ajustar el bit ejecutable almacenado en el índice.
Luego, puede confirmar esto por separado de cualquier cambio en el contenido de los archivos.
La respuesta de Charles estaba agregando cambios de modo de archivo y de contenido al índice para mí. Trabajé alrededor de esta manera.
git update-index --skip-worktree --chmod=+x <file>
git update-index --no-skip-worktree <file>
Alternativamente puedes hacerlo
git update-index --chmod=+x <file>
git config interactive.singlekey 1
echo na | git reset -p