Maison >outils de développement >git >Comment restaurer des fichiers supprimés localement dans git
Lorsque nous utilisons Git pour le contrôle de version, nous supprimons parfois certains fichiers locaux par erreur. Si ces fichiers ne sont pas sauvegardés avant d'être ajoutés au référentiel Git, alors ces fichiers seront définitivement supprimés, ce qui est une très mauvaise chose.
Cependant, vous serez agréablement surpris de constater que quelle que soit la branche sur laquelle vous supprimez un fichier, Git le stockera dans une zone spéciale appelée zone de transit Git, ce qui nous donne la possibilité de restaurer ces fichiers.
Alors, comment pouvons-nous récupérer les fichiers supprimés localement ?
En supposant que le fichier que vous avez supprimé s'appelle file.txt
, vous pouvez alors restaurer la dernière version de ce fichier via la commande suivante : file.txt
,那么您可以通过以下命令恢复最新版本的此文件:
$ git checkout HEAD -- file.txt
在此命令中,git checkout
命令的作用是从 Git 仓库中检出指定文件或目录的版本。而 HEAD
则表示检出最新的提交版本,并将其保存到工作区域。
这意味着您所恢复的数据将是在最后一次提交后,但在删除文件时保存的最后一份副本。而在运行此命令之前,请确保您尚未提交更改,否则您恢复的将是旧的版本,并将覆盖您最新的代码。
除了恢复最新版本的文件外,您还可以检出资源库中的早期版本。要执行此操作,请运行以下命令:
$ git log -- file.txt
此命令将列出 Git 仓库中所有针对此文件进行的更改,并在您准备恢复特定版本时提供有关文件的信息。在列出更改后,您将看到一条条的提交记录,每个记录的开头都有一个哈希值。
复制您想要检出的版本的哈希值,并使用以下命令:
$ git checkout <commit-hash> -- file.txt
此命令的工作原理与之前相同。但是,这次您使用特定的提交哈希值而不是 HEAD
rrreee
git checkout
est utilisée pour extraire la version du fichier ou du répertoire spécifié à partir du référentiel Git. Et HEAD
signifie extraire la dernière version soumise et l'enregistrer dans la zone de travail. Cela signifie que les données que vous récupérez seront la dernière copie enregistrée après le dernier commit, mais lorsque le fichier a été supprimé. Avant d'exécuter cette commande, assurez-vous de ne pas avoir validé vos modifications, sinon vous reviendrez à une ancienne version et écraserez votre dernier code. Restaurer les versions antérieures des fichiersEn plus de restaurer les dernières versions des fichiers, vous pouvez également consulter les versions antérieures dans le référentiel. Pour ce faire, exécutez la commande suivante : rrreee
Cette commande listera toutes les modifications apportées à ce fichier dans le référentiel Git et fournira des informations sur le fichier si vous êtes prêt à restaurer une version spécifique. Une fois les modifications répertoriées, vous verrez une ligne d’enregistrements de validation, chacun avec un hachage au début. 🎜🎜Copiez le hachage de la version que vous souhaitez extraire et utilisez la commande suivante : 🎜rrreee🎜Cette commande fonctionne de la même manière qu'avant. Cependant, cette fois, vous utilisez un hachage de validation spécifique au lieu deHEAD
. Cela restaurera la version du fichier telle qu'elle était au moment de la validation spécifiée. 🎜🎜Prévenir la perte de fichiers🎜🎜Bien que Git puisse vous aider à récupérer des fichiers supprimés, il est toujours recommandé de sauvegarder les nouveaux fichiers avant de les ajouter ou de modifier les anciens fichiers. Les sauvegardes protègent contre la perte imprévisible de données, mais vous permettent également de parcourir facilement les versions précédentes pour mieux comprendre l'évolution historique de votre code. 🎜🎜 De plus, pour vous protéger contre les pannes ou la perte de données dans votre référentiel Git, vous devriez envisager d'utiliser le stockage cloud ou d'autres solutions de sauvegarde pour conserver une version complète de votre base de code en cas de récupération après une perte de données plus importante. 🎜🎜Lorsque vous utilisez Git pour le contrôle de version, n'oubliez pas que la douceur vaut mieux que la suppression arbitraire de fichiers. La suppression arbitraire de fichiers peut entraîner une perte de données, ce qui constituera une erreur coûteuse et inutile. Si vous ne savez pas comment utiliser Git pour le contrôle de version, recherchez de nombreuses ressources sur cet outil puissant afin de toujours disposer des connaissances et des compétences nécessaires pour protéger votre base de code. 🎜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!