Cómo comprometerse con el servidor después de que git reset devuelva la versión especificada
Se puede dividir aproximadamente en las siguientes dos situaciones:
1. Sin envío
Esta situación ocurre en su repositorio de código local. Puede agregar Después. Al enviar el código, encontré algunos problemas y me preparé para cancelar el envío. Utilice el siguiente comando
reset
git reset [--soft | Mixed | p>
git reset [--soft | --hard | --hard | --hard | --hard | --hard | --hard p>
Los tres anteriores son comunes
--mixed
El código fuente se conserva, pero la información de índice y confirmación de git se revierte a una versión determinada.
Git reset tiene como valor predeterminado --mixed mode
git reset --mixed es equivalente a git reset
--soft
Mantener el código fuente, pero solo revierte la información de confirmación a una versión determinada. No hay ningún índice para revertir, por lo que si aún necesita confirmar, simplemente confirme.
--Reversión completa
El código fuente también se revertirá a una versión determinada, y el envío y el índice se revertirán a una versión determinada. (Tenga en cuenta que esta es una forma de cambiar el código fuente del almacén local)
Por supuesto, algunas personas también usan reset --hard
Entonces, en este caso, debe utilizar el siguiente método
2. Ya enviado
Para el código que se ha enviado al almacén en línea, usted Cuando retrocede al código local, también debe retroceder a la versión especificada del código en línea al mismo tiempo para mantener la coherencia del código en línea y el código fuera de línea. Debes usar los siguientes comandos
revert
git revert se usa para la confirmación inversa, mientras que el comando evert requiere que el árbol de trabajo esté limpio.
git revert borrará cualquier cambio realizado por confirmaciones históricas con nuevas confirmaciones.
Después de la restauración, el código local se revertirá a la versión histórica especificada y podrá usar git push para actualizar el código en línea. (
Para usar revertir, necesita encontrar el identificador de confirmación único de la versión que desea revertir, que se puede encontrar en el registro de git o en las confirmaciones históricas del entorno de red que creó con adgit.
git revert c011eb3c20ba6fb38cc94fe5a8dda366a3990c61
Por lo general, los primeros números son suficientes
git revert c011eb3
git revert retrocederá con un nuevo commit commit, mientras que git reset eliminará el commit especificado
Parece estar haciendo lo mismo, pero en realidad es bastante diferente
Primero que nada:
<. p>Como se mencionó anteriormente, restablecer eliminará la confirmación especificada antes de enviarla con git, lo que puede causar muchos conflictosSegundo:
Si necesita fusionar lo existente. rama con la rama histórica más tarde, el código restaurado mediante reinicio aún permanecerá en la rama histórica. Sin embargo, el código enviado en la dirección de reversión no aparecerá en la rama histórica.
Tercero:
reset eliminará la confirmación especificada en el historial de envío normal, moviendo así HEAD hacia atrás; mientras que revertir enviará el historial de envío normal nuevamente, pero en la dirección opuesta, HEAD. siempre estará adelante.