Maison  >  Article  >  outils de développement  >  Explication détaillée de plusieurs méthodes pour récupérer des fichiers supprimés à l'aide de git

Explication détaillée de plusieurs méthodes pour récupérer des fichiers supprimés à l'aide de git

PHPz
PHPzoriginal
2023-04-03 11:52:3416584parcourir

Lors de l'utilisation de Git pour le contrôle de version du code, il arrive parfois qu'un fichier soit accidentellement supprimé. À l'heure actuelle, nous pouvons utiliser certaines opérations magiques de Git pour récupérer ces fichiers supprimés accidentellement. Cet article présentera plusieurs méthodes de Git pour récupérer les fichiers supprimés.

1. Utilisez checkout pour récupérer les fichiers supprimés

Si nous supprimons un fichier par erreur, nous pouvons le restaurer en utilisant la commande checkout : checkout 命令来恢复:

git checkout -- <file_path>

这个命令的含义是将该文件恢复到最新的版本。如果该文件曾经提交到过 Git 中,则会恢复到最近一次提交该文件的版本。如果这个文件没有提交过,又被误删除了,则可以通过 checkout 命令恢复为当前未提交的状态。

需要注意的是,使用 checkout 命令会覆盖掉本地的修改,所以在使用前需要将本地的修改进行备份或者提交到版本库。

2. 使用 reset 恢复删除的文件

同样的,我们也可以使用 reset 命令进行恢复文件:

git reset HEAD <file_path>

这个命令的含义是将该文件从暂存区恢复到工作区,也就是取消对该文件的暂存。如果我们刚刚将该文件删除时没有执行 commit 命令,则该文件是在暂存区被删除的。使用 reset 命令可以将该文件从暂存区恢复到工作区。

需要注意的是,使用 reset 命令不会删除文件,只是将文件从暂存区移动回工作区。如果需要将文件完全删除,则可以使用 rm 命令将其删除,然后再使用 commit 命令提交删除操作。

3. 使用 reflog 恢复删除的文件

如果我们误删除某个文件,并且之前的一些操作已经提交到了版本库,则我们可以使用 Git 的 reflog 命令来找回这个文件。

reflog 命令记录了 Git 的所有操作,包括每次提交、合并、重置等。我们可以通过以下命令查看 reflog

git reflog

这个命令会列出 Git 的所有操作记录,包括操作的 SHA1 版本号和提交的注释。记录的编号越小,越靠近当前状态。

我们可以通过在 reflog 中找到误删除文件的 SHA1 版本号,然后使用以下命令进行恢复:

git checkout HEAD@{<commit-number>} <file_path>

其中 <commit-number> 表示要恢复的提交版本号。我们可以在 reflog 中找到误删除文件的 commit-number,然后将其替换到上面的命令中。

需要注意的是,如果之前进行了合并或者重置操作,在使用 reflog 恢复文件时可能会产生冲突,需要手动解决冲突。

结论

误删除文件是开发人员经常遇到的问题,但是 Git 提供了很多方法来帮助我们找回这些误删除的文件。本文介绍了使用 checkoutresetreflogrrreee

La signification de cette commande est de restaurer le fichier. à la dernière version. Si le fichier a déjà été soumis à Git, il sera restauré vers la version la plus récemment soumise du fichier. Si ce fichier n'a pas été soumis et est accidentellement supprimé, vous pouvez utiliser la commande checkout pour le restaurer à son état actuel non validé. 🎜🎜Il convient de noter que l'utilisation de la commande checkout écrasera les modifications locales, les modifications locales doivent donc être sauvegardées ou soumises au référentiel avant utilisation. 🎜🎜2. Utilisez la réinitialisation pour récupérer les fichiers supprimés🎜🎜De même, nous pouvons également utiliser la commande reset pour récupérer des fichiers : 🎜rrreee🎜La signification de cette commande est de restaurer le fichier de la zone de transit vers la zone de travail, c'est-à-dire annuler le stockage temporaire du fichier. Si nous n'avons pas exécuté la commande commit lorsque nous venons de supprimer le fichier, le fichier a été supprimé dans la zone de préparation. Utilisez la commande reset pour restaurer le fichier de la zone de transit vers l'espace de travail. 🎜🎜Il convient de noter que l'utilisation de la commande reset ne supprimera pas le fichier, elle déplacera simplement le fichier de la zone de préparation vers l'espace de travail. Si vous devez supprimer complètement le fichier, vous pouvez utiliser la commande rm pour le supprimer, puis utiliser la commande commit pour valider la suppression. 🎜🎜3. Utilisez reflog pour récupérer les fichiers supprimés🎜🎜Si nous supprimons un fichier par erreur et que certaines opérations précédentes ont été soumises au référentiel, nous pouvons utiliser la commande reflog de Git pour récupérer le document. 🎜🎜La commande reflog enregistre toutes les opérations Git, y compris chaque validation, fusion, réinitialisation, etc. Nous pouvons afficher reflog avec la commande suivante : 🎜rrreee🎜Cette commande listera tous les enregistrements d'opération Git, y compris le numéro de version SHA1 de l'opération et les commentaires soumis. Plus le nombre d'enregistrement est petit, plus il est proche de l'état actuel. 🎜🎜Nous pouvons trouver le numéro de version SHA1 du fichier supprimé accidentellement dans reflog, puis utiliser la commande suivante pour le restaurer : 🎜rrreee🎜où <commit-number> signifie le numéro de version de validation restauré. Nous pouvons trouver le numéro de validation du fichier supprimé accidentellement dans reflog et le remplacer dans la commande ci-dessus. 🎜🎜Il convient de noter que si une opération de fusion ou de réinitialisation a été effectuée auparavant, des conflits peuvent survenir lors de l'utilisation de reflog pour restaurer des fichiers, et les conflits doivent être résolus manuellement. 🎜🎜Conclusion🎜🎜La suppression accidentelle de fichiers est un problème que les développeurs rencontrent souvent, mais Git propose de nombreuses méthodes pour nous aider à récupérer ces fichiers supprimés accidentellement. Cet article présente les méthodes d'utilisation de checkout, reset et reflog pour la récupération de fichiers. Vous devez choisir la méthode appropriée en fonction de différents scénarios. Avant d'effectuer des opérations de récupération, vous devez sauvegarder les modifications locales ou les soumettre au référentiel pour éviter la perte de données. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn