Mi actual git status
se ve así:Git parciales de cometer por etapas cambios
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: docs/file3.org
# modified: src/main/R/lib.R
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: docs/file3.org
# modified: src/main/R/lib.R
que me gustaría cometer el realizaron cambios a docs/file3.org
primero, y luego la otra cambios por etapas. Pero si lo hago git commit -m '...' docs/file3.org
, confirmará los cambios no escalonados & por etapas a ese archivo.
¿Hay una manera fácil de hacer esto? ¿O necesito stash
mis cambios sin registrar, dejar de lado uno de los archivos, confirmar el otro, rehacer, confirmar y stash pop
?
Es posible que el comportamiento de 'git commit' haya cambiado desde que publicó esta pregunta, pero a partir de diciembre de 2015, el comando que intentó (especificando las rutas que quería confirmar) debería funcionar. Desde la [documentación] (https://git-scm.com/docs/git-commit) de la opción commit de git --only: * Realice una confirmación tomando los contenidos del árbol de trabajo actualizado de las rutas especificadas en el comando línea, sin tener en cuenta los contenidos que se han organizado para otras rutas. Este es el modo de operación predeterminado de git commit si se dan rutas en la línea de comandos, en cuyo caso esta opción se puede omitir. * – waldyrious
De hecho, esperaría que 'git commit' (sin rutas especificadas) se comprometa * solo en etapas * modificaciones. De todos modos, otra opción es usar 'git gui' para las operaciones de escenario y compromiso. – aweibell