J'ai supprimé un fichier avec Git puis validé, donc le fichier n'est plus dans ma copie de travail. Je veux regarder le contenu de ce fichier, mais pas vraiment le restaurer. Comment puis-je faire ceci?
105
git show HEAD^:path/to/file
Vous pouvez utiliser un identifiant de validation explicite ou HEAD~n
pour voir des versions plus anciennes ou s'il y a eu plus d'un commit depuis que vous l'avez supprimé.
path/to/file
s'agit du chemin complet depuis le haut du projet (répertoire supérieur du référentiel).fatal: Invalid object name 'HEAD^'.
(je dois mentionner que je n'ai que "Initial commit")S'il s'agit d'un fichier que vous avez supprimé il y a quelque temps et que vous ne souhaitez pas rechercher une révision , vous pouvez utiliser (le fichier est nommé
foo
dans cet exemple; vous pouvez utiliser un chemin complet):L'
rev-list
appel recherche toutes les révisions defoo
mais n'en répertorie qu'une. Étant donné que lesrev-list
listes sont dans l'ordre chronologique inverse, ce qu'elle répertorie est la dernière révision qui a changéfoo
, qui serait le commit qui a été suppriméfoo
. (Ceci est basé sur l'hypothèse que git ne permet pas à un fichier supprimé d'être modifié et de rester supprimé.) Vous ne pouvez pas simplement utiliser la révision quirev-list
retourne telle quelle car ellefoo
n'existe plus là-bas. Vous devez demander celui juste avant qui contient la dernière révision du fichier, d'où le^
ingit show
.la source
**/foo
si vous ne connaissez pas le chemin (cela fonctionnera pour la commande rev-list mais pas pour la commande show. Cependant, avec le commit de la commande rev-list, vous pouvez alors trouver le chemin).Puisque vous ne vous souvenez peut-être pas du chemin exact, vous pouvez à la place obtenir le sha1 à partir du journal git, puis vous pouvez simplement émettre
la source
git whatchanged --no-abbrev
cela donne une sortie similaire à git (ou svn) log.