Comando git reset

Git 基本操作Operaciones básicas de Git


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...

Se puede expresar con ~número
  • 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.



Git 基本操作Operaciones básicas de Git

Otras extensiones