Dividido en tres situaciones:
- Los cambios no se han agregado del área de trabajo al área de almacenamiento temporal, es decir
git add
, antes de que se ejecute el comando, como por ejemplo:
En este momento, puede usar git checkout
comandos para deshacer la modificación, como:
git checkout -- rainbow.txt start.txt
git checkout -- *
git checkout -- *.txt
- Se ha agregado el cambio al área de almacenamiento temporal, es decir, se ha ejecutado el
git add
comando, como:
En este momento, puede usargit reset
comandos para deshacer la modificación, como:
git reset HEAD rainbow.txt start.txt
git reset HEAD *
git reset HEAD *.txt
Cabe señalar que después de ejecutar el comando anterior, la modificación local no desaparecerá, sino que solo regresará al área de trabajo desde el área de almacenamiento temporal , que es el estado que se muestra en el primer caso. Continúe usando la operación en el primer caso, puede abandonar la modificación local.
- El código se ha enviado al almacén local, es decir, el
git commit
comando se ha ejecutado . En este momento, el espacio de trabajo está limpio. Si desea deshacer la modificación anterior, debe realizar la operación de reversión de la versión:
#回退到上一个版本
git reset --hard HEAD^
#回退到上上次版本
git reset --hard HEAD^^
git reset --hard HEAD^^^
#回退到指定commitid的版本
git reset --hard commit_id
Puede usar git log
o el git reflog
comando para ver el historial de git enviado, obtener commit_id.