commande git reset
La commande git reset est utilisée pour revenir à des versions antérieures, et vous pouvez spécifier un commit particulier auquel revenir.
Le format de syntaxe de la commande git reset est le suivant :
git reset [--soft | --mixed | --hard] [HEAD]
--mixedIl s'agit de la valeur par défaut, ce paramètre peut donc être omis. Il réinitialise les fichiers de la zone de staging pour qu'ils soient cohérents avec le dernier commit, tandis que le contenu des fichiers du répertoire de travail reste inchangé.
git reset [HEAD]
Exemple :
$ git reset HEAD^ # 回退所有内容到上一个版本 $ git reset HEAD^ hello.php # 回退 hello.php 文件的版本到上一个版本 $ git reset 052e # 回退到指定版本
--softParamètre utilisé pour revenir à une certaine version :
git reset --soft HEAD
Exemple :
$ git reset --soft HEAD~3 # 回退上上上一个版本
--hardCe paramètre annule toutes les modifications non validées dans le répertoire de travail, ramène à la fois la zone de préparation et le répertoire de travail à la version précédente, et supprime toutes les informations des commits précédents :
git reset --hard HEAD
Exemple :
$ git reset --hard HEAD~3 # 回退上上上一个版本 $ git reset –hard bae128 # 回退到某个版本回退点之前的所有信息。 $ git reset --hard origin/master # 将本地的状态回退到和远程的一样
Remarque :Utilisation prudente–-hardCe paramètre supprime toutes les informations avant le point de restauration.
Description de HEAD :
HEAD représente la version actuelle
HEAD^ est la version précédente
HEAD^^ est la version deux étapes en arrière
HEAD^^^ — la version trois commits en arrière
Et ainsi de suite...
HEAD~0 représente la version actuelle
HEAD~1 est la version précédente
HEAD^2 est la version deux étapes en arrière
HEAD^3 est la version trois étapes en arrière
Et ainsi de suite...
git reset HEAD
La commande git reset HEAD est utilisée pour désindexer le contenu mis en cache.
Commençons par modifier le fichier README, avec le contenu suivant :
# Example Git 测试 # Example
Le fichier hello.php est modifié comme suit :
<?php echo 'Example:www.example.com'; echo 'Example:www.example.com'; echo 'Example:www.example.com'; ?>
Maintenant que les deux fichiers ont été modifiés et ajoutés à la zone de préparation, nous voulons désindexer l'un d'eux. L'opération est la suivante :
$ 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
Maintenant, si vous exécutez git commit, seules les modifications du fichier README seront validées, tandis que hello.php ne le sera pas.
$ git commit -m '修改'
[master f50cfda] 修改
1 file changed, 1 insertion(+)
$ git status -s
M hello.php
Vous pouvez voir que la modification du fichier hello.php n'a pas été validée.
À ce stade, nous pouvons utiliser la commande suivante pour valider la modification 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 bref, exécutez git reset HEAD pour désindexer les fichiers qui ont été précédemment ajoutés avec git add, mais que vous ne voulez pas inclure dans le prochain instantané de commit.
autres extensions