Usando Git, si tengo 20 cambios y agrego – cometer – presiono 5 de ellos. ¿Los otros 15 aún estarán allí?

Quiero asegurarme de que mis cambios estén seguros cuando agregue "algunos" de mis cambios y me comprometo – empújelos a la sucursal. Estoy trabajando en tareas separadas y no quiero agregar – comprometer – presionar todavía para algunos.

¡Gracias!

Sí, git es un excelente sistema para este flujo de trabajo debido al "área de ensayo" o "índice". Siempre y cuando no agregue -a a la git commit , solo los files que haya agregado con git add tendrán su versión actualizada en la siguiente confirmación. (Cuando cometes git, el tree que está registrado en la confirmación es el estado del índice).

De hecho, puedes hacer una granularidad más fina que por file: con frecuencia solo realizo algunos cambios de un file en particular usando:

 git add -p whatever.c 

… y simplemente seleccionando cambios particulares. (Si los cambios que le ofrece no son lo suficientemente buenos, puede presionar s para dividir el cambio. Si eso es demasiado, puede usar e para editar con precisión el cambio que se realizará).

A medida que organiza las cosas, es útil hacer con frecuencia:

  • git diff

y:

  • git diff --cached

En términos generales, git diff muestra los cambios que aún no se han realizado, mientras que git diff --cached muestra los cambios que se han realizado.

Agregar, comprometer y presionar no altera su tree de trabajo en absoluto; están perfectamente a salvo.

Si está trabajando en tareas separadas y no quiere que los cambios sin clasificar / sin compromiso se mezclen (o si desea mantener cambios no comprometidos para varias twigs), también puede usar git stash para mantener su tree de trabajo cambios organizados.