Comando git reset
El comando git reset se utiliza para revertir versiones; puedes especificar volver a la versión de un commit en particular.
La sintaxis del comando git reset es la siguiente:
git reset [--soft | --mixed | --hard] [HEAD]
--mixedEs el valor predeterminado; puedes omitir este parámetro. Se utiliza para restablecer los archivos del área de preparación para que coincidan con el último commit, mientras que el contenido de los archivos del directorio de trabajo permanece sin cambios.
git reset [HEAD]
Ejemplo:
$ git reset HEAD^ # 回退所有内容到上一个版本 $ git reset HEAD^ hello.php # 回退 hello.php 文件的版本到上一个版本 $ git reset 052e # 回退到指定版本
--softEl parámetro se usa para revertir a una versión específica:
git reset --soft HEAD
Ejemplo:
$ git reset --soft HEAD~3 # 回退上上上一个版本
--hardEl parámetro deshace todas las modificaciones no confirmadas en el directorio de trabajo, regresa tanto el área de preparación como el directorio de trabajo a la versión anterior y elimina toda la información de commits anteriores.
git reset --hard HEAD
Ejemplo:
$ git reset --hard HEAD~3 # 回退上上上一个版本 $ git reset –hard bae128 # 回退到某个版本回退点之前的所有信息。 $ git reset --hard origin/master # 将本地的状态回退到和远程的一样
Nota:Usar con precaución–-hardEl parámetro eliminará toda la información anterior al punto de reversión.
Explicación de HEAD:
HEAD representa la versión actual
HEAD^ la versión anterior
HEAD^^ la versión anterior a la anterior
HEAD^^^ la versión tres anteriores
Y así sucesivamente...
HEAD~0 indica la versión actual
HEAD~1 la versión anterior
HEAD^2 la versión anterior a la anterior
HEAD^3 la versión tres anteriores
Y así sucesivamente...
git reset HEAD
El comando git reset HEAD se utiliza para cancelar el contenido ya preparado (staged).
Primero modificamos el archivo README, cuyo contenido es el siguiente:
# Ejemplo Git 测试 # Ejemplo
El archivo hello.php se modifica a:
<?php echo 'Ejemplo:www.example.com'; echo 'Ejemplo:www.example.com'; echo 'Ejemplo:www.example.com'; ?>
Ahora, después de modificar los dos archivos, ambos se han agregado al área de preparación; ahora vamos a cancelar la preparación de uno de ellos, la operación es la siguiente:
$ git status -s
M README
M hello.php
$ git add .
$ git status -s
M README
M hello.php
$ git reset HEAD hello.php
Unstaged changes after reset:
M hello.php
$ git status -s
M README
M hello.php
Ahora, si ejecutas git commit, solo se confirmarán los cambios del archivo README, mientras que los de hello.php no.
$ git commit -m '修改'
[master f50cfda] 修改
1 file changed, 1 insertion(+)
$ git status -s
M hello.php
Se puede ver que los cambios del archivo hello.php no han sido confirmados.
En este momento podemos usar el siguiente comando para confirmar los cambios de hello.php:
$ git commit -am '修改 hello.php 文件'
[master 760f74d] 修改 hello.php 文件
1 file changed, 1 insertion(+)
$ git status
On branch master
nothing to commit, working directory clean
En resumen, ejecuta git reset HEAD para cancelar la preparación de los archivos que previamente agregaste con git add pero que no deseas incluir en la próxima instantánea de confirmación.
Otras extensiones
Operaciones básicas de Git