Red de conocimiento informático - Aprendizaje de programación - Cómo comprometerse con el servidor después de que git reset devuelva la versión especificada

Cómo comprometerse con el servidor después de que git reset devuelva la versión especificada

Estos son problemas muy comunes en el desarrollo, por lo que la capacidad de Git para cancelar confirmaciones, revertir e incluso regresar a versiones anteriores es particularmente importante.

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 Regrese a una versión anterior del código, pero habrá un problema al hacerlo. Su código en línea no ha cambiado y la confirmación y el índice en línea no han cambiado. Cuando modifique el código local y lo envíe. descubre que hay un conflicto en el lado derecho....

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 conflictos

Segundo:

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.