Cuál es la función de “$git reset (…) --soft”? La he utilizado y solamente he visto cómo desaparece mi historial en “log”, pero el docume...

Miguel Alberto Romero Peña

Miguel Alberto Romero Peña

Pregunta
studenthace 4 años

Cuál es la función de “$git reset (…) --soft”?

La he utilizado y solamente he visto cómo desaparece mi historial en “log”, pero el documento no se ha modificado. Lo que hice fue utilizar ese “reset (…) --soft” usando los códigos de commit a los que quería volver, pero el archivo de texto que tenía no se modificó en ninguna ocasión.

2 respuestas
para escribir tu comentario
    Juan Guillen Fortich

    Juan Guillen Fortich

    studenthace 4 años

    El git reset --soft sirve para volver en el tiempo pero te mantiene lo que está en staging por eso ves que tus archivos no cambian

    Cristian Blandón

    Cristian Blandón

    studenthace 4 años

    Hola :)

    Hagamos un recorrido por las opciones de

    git reset
    .

    git reset --soft [commit]
    moverá tu rama actual y el HEAD pointer (el HEAD es donde está apuntando tu Git en este momento) al commit que le indiques; eso hace que, como indicas, el "log" posterior a ese commit que indicaste, ya no esté (porque la rama y su cabecera se fueron hacia atrás). La clave está en... ¿Qué pasa con los commit posteriores que desaparecieron del log? Los cambios realizados hasta el último commit siguen existiendo (por eso tus archivos no se modifican), solo que ya no están committed, sino pasan a estar en el Staging area (es decir, los archivos no cambian como tal pero si quieres devolver el repositorio a su estado antes del reset, debes hacer un commit).

    ¿Quieres que los archivos cambien? Entonces

    git reset --hard [commit]
    es tu opción, ya que la rama se mueve, el HEAD se mueve, los archivos se mueven, el log desaparece y los cambios posteriores al commit que indiques se irán a la basura (se pueden recuperar a través de
    git reflog
    .

    Hay un reset más que es

    git reset [commit]
    ... Funciona como el
    --soft
    pero los cambios no quedan en Staging sino en los archivos únicamente (working directory), por lo que para volver a agregarlos al repositorio debes
    git add
    y luego
    git commit
    .

    ¡Saludos!

Curso de Git y Github [Empieza Gratis]

Curso de Git y Github [Empieza Gratis]

Deja de versionar tus proyectos usando tu propio sistema de control de versiones. Mejor usa Git, el sistema de control de versiones por excelencia que utiliza la industria tecnológica. Aprende a trabajar con git, conceptos básicos, clonar un repositorio y gestionar tus proyectos alojándolos en tu repositorio local y en GitHub.

Curso de Git y Github [Empieza Gratis]
Curso de Git y Github [Empieza Gratis]

Curso de Git y Github [Empieza Gratis]

Deja de versionar tus proyectos usando tu propio sistema de control de versiones. Mejor usa Git, el sistema de control de versiones por excelencia que utiliza la industria tecnológica. Aprende a trabajar con git, conceptos básicos, clonar un repositorio y gestionar tus proyectos alojándolos en tu repositorio local y en GitHub.