Herramientas de usuario

Herramientas del sitio


clase:daw:daw:1eval:tema01

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
clase:daw:daw:1eval:tema01 [2025/11/03 11:37] – creado - editor externo 127.0.0.1clase:daw:daw:1eval:tema01 [2026/05/18 09:42] (actual) – [Diff] Lorenzo
Línea 560: Línea 560:
 </sxh> </sxh>
  
 +==== Cuidado con ''--index'' (aquí es donde mucha gente se lía) ====
 +
 +Cuando guardas un stash, git recuerda **qué ficheros estaban en el //staged area//** y cuáles no. Pero al hacer ''git stash pop'' //por defecto//, git te devuelve todos los cambios marcándolos como //modificados sin añadir//, es decir, **pierde la información de qué estaba ya en staged**.
 +
 +Si quieres que se respete ese estado original — que lo que estaba en el //staged area// vuelva al //staged area// — tienes que usar:
 +<sxh bash>
 +git stash pop --index
 +</sxh>
 +
 +=== Ejemplo para verlo claro ===
 +
 +Supón que tienes:
 +  * ''archivo_a.txt'' modificado y añadido con ''git add'' (está en //staged//)
 +  * ''archivo_b.txt'' modificado pero sin ''git add'' (//no// está en //staged//)
 +
 +Haces ''git stash push'' y luego ''git stash pop'':
 +  * Ambos ficheros aparecen como modificados, pero **ninguno** está en //staged//. Has perdido la distinción.
 +
 +Si en cambio haces ''git stash pop --index'':
 +  * ''archivo_a.txt'' vuelve a //staged//.
 +  * ''archivo_b.txt'' vuelve a modificado sin añadir.
 +  * El estado queda **exactamente** como lo dejaste antes del stash.
 +
 +^  Comando  ^  Restaura cambios  ^  Restaura el //staged area//  ^
 +| ''git stash pop''  |  ✓  |    |
 +| ''git stash pop --index''  |  ✓  |  ✓  |
 ===== Log ===== ===== Log =====
 El comando ''git log'' permite ver el histórico de commits El comando ''git log'' permite ver el histórico de commits
Línea 592: Línea 618:
  
   git diff HEAD HEAD^   git diff HEAD HEAD^
-  +
   * Vamos la diferencia entre las ramas ''master'' y ''release''   * Vamos la diferencia entre las ramas ''master'' y ''release''
  
   git diff master release   git diff master release
-  +
   * Las diferencias entre tu área de trabajo (working area) y el último commit (HEAD)   * Las diferencias entre tu área de trabajo (working area) y el último commit (HEAD)
  
   git diff   git diff
-  +
   * Los cambios en tu directorio de trabajo, tanto los que están en staging como los que no.   * Los cambios en tu directorio de trabajo, tanto los que están en staging como los que no.
  
clase/daw/daw/1eval/tema01.1762166239.txt.gz · Última modificación: por 127.0.0.1