Comment puis-je extraire une version particulière d'un fichier dans git?
J'ai trouvé ce mail sur la liste de diffusion , qui disait:
$ git checkout HEAD~43 Makefile
$ git reset Makefile
Mais je ne comprends pas comment trouver 'HEAD ~ 43', si je fais un git log aFile
, comment puis-je savoir quel 'HEAD ~ 43' je dois utiliser?
Et pourquoi dois-je exécuter git reset
pour ce fichier? Qu'est ce que ça fait?
Réponses:
Vous savez à quel commit (ie: la révision spécifique) le fichier appartient? Alors fais:
L'autre commande:
C'est pour quand vous voulez obtenir une version du fichier à partir d'une gamme de retour (ce que je fais par nostalgie).
la source
HEAD~43
est simplement arborescent, vous pouvez donc utiliser un hachage ou une balise. Vous devez séparer treeish du nom de fichier avec--
, sinon il est traité comme nom de fichier. Par exemple.la source
HEAD~43
fait référence au commit (version) du fichier. Au lieu de cela, vous pouvez utiliser le hachage de validation que vous obtenez en effectuantgit log
sur le fichier. Si vous voulez juste le fichier, vous n'avez pas besoin de l'exécutergit reset
; cela n'est nécessaire que si vous souhaitez transférer le fichier vers le HEAD actuel.la source