Tengo algunos cambios escalonados y otros no procesados en git, así como algunos files sin seguimiento. Me gustaría mantener los cambios no supervisados y los files sin seguimiento, y descartar los cambios por etapas.
¿Cuál es la forma más fácil de hacer esto en la línea de command?
Tengo algunos cambios escalonados y otros no procesados en git, así como algunos files sin seguimiento. Me gustaría mantener los cambios sin compromiso y los files sin seguimiento, y descartar los cambios comprometidos.
Como ha aclarado en su comentario, quiere decir "… y descartar los cambios realizados" (no los cambios comprometidos ). Normalmente, git reset
para deshacer el git add
. Pero en su caso, quiere mantener sus cambios no registrados, así que:
git commit # move staged to a commit, does not touch unstaged changes/unadded files git checkout HEAD^ # checkout the previously committed version while keeping unstaged changes/unadded files git branch yourbranchname --force # to grab the branch and move it back as well
git reset HEAD^
Restaure HEAD a su elemento principal, y ahora los cambios de compromiso se descartan en el índice pero se guardan en el tree de trabajo.
git checkout -- paths_of_files_whose_changes_are_to_be_discarded_in_the_work_tree
Descarta los cambios en el tree de trabajo.