Existe-t-il une commande dans Git pour voir (soit vidée sur stdout, soit dans $PAGER
ou $EDITOR
) une version particulière d'un fichier particulier?
1511
Existe-t-il une commande dans Git pour voir (soit vidée sur stdout, soit dans $PAGER
ou $EDITOR
) une version particulière d'un fichier particulier?
git checkout <sha1-of-the-commit-you-need>
, après,git checkout HEAD
Réponses:
Vous pouvez utiliser
git show
avec un chemin depuis la racine du référentiel (./
ou../
pour un cheminement relatif):Remplacez
REVISION
par votre révision réelle (peut être un SHA de validation Git, un nom de balise, un nom de branche, un nom de validation relatif ou toute autre manière d'identifier une validation dans Git)Par exemple, pour afficher la version du fichier
<repository-root>/src/main.c
d'il y a 4 validations, utilisez:Git pour Windows nécessite des barres obliques, même dans les chemins relatifs au répertoire actuel. Pour plus d'informations, consultez la page de manuel de
git-show
.la source
Faire ceci par date ressemble à ceci:
Notez que cela
HEAD@{2013-02-25}
signifie «où HEAD se trouvait le 25/02/2013» dans ce référentiel (à l' aide du reflog ), et non «le dernier commit avant le 25/02/2013 dans cette branche de l'historique».la source
master
au lieu deHEAD@{2013-02-25}
, si vous êtes sur une branchegit log --since='2016-04-28 23:59:59 +0100'
?Si vous aimez les interfaces graphiques, vous pouvez utiliser gitk:
lancez gitk avec:
Choisissez la révision dans la partie supérieure de l'écran, par exemple par description ou par date. Par défaut, la partie inférieure de l'écran affiche le diff pour cette révision (correspondant au bouton radio "patch").
Pour voir le fichier de la révision sélectionnée:
la source
gitk REVISION /path/to/file
. Cela peut être utile lorsque vous souhaitez comparer une certaine version par exemple.Vous pouvez également spécifier un
commit hash
(souvent aussi appelécommit ID
) avec lagit show
commande .En un mot
git show <commitHash>:/path/to/file
Pas à pas
git log /path/to/file
commit hash
tel quecommit 06c98...
(06c98 ... étant le hachage de validation)commit hash
git show <commitHash>:/path/to/file
utilisant lescommit hash
étapes 3 etpath/to/file
1.Remarque: l' ajout de
./
lorsque vous spécifiez un chemin relatif semble important, c'est-à-diregit show b2f8be577166577c59b55e11cfff1404baf63a84:./flight-simulation/src/main/components/nav-horiz.html
.la source
git show <SHA1> --name-only
pour l'obtenir.En plus de la réponse de Jim Hunziker ,
vous pouvez exporter le fichier de la révision comme,
J'espère que cela t'aides :)
la source
Pour voir rapidement les différences avec les anciennes révisions d'un fichier:
la source
git log -p
vous montrera non seulement les journaux de validation, mais aussi les différences de chaque validation (à l'exception des validations de fusion). Ensuite, vous pouvez appuyer sur/
, saisir le nom du fichier et appuyer surenter
. Appuyez surn
oup
pour passer à l'occurrence suivante / précédente. De cette façon, vous verrez non seulement les modifications dans le fichier, mais également les informations de validation.la source
git log -pm
commits de fusion soient également affichés.git log -p -- filename.txt
pour limiter l'historique uniquement au fichier souhaité.Vous pouvez utiliser un script comme celui-ci pour vider toutes les versions d'un fichier dans des fichiers séparés:
par exemple
Obtenez le script ici comme réponse à une autre question similaire
la source
git_root
,git_log_short
Etgit_log_message_for_commit
sont portés disparus.VOIE 1: (Je préfère cette façon)
git reflog
git diff-tree --no-commit-id --name-only -r <commitHash>
git show <commitHash>:/path/to/file
VOIE 2:
git reflog
git reset --hard %commit ID%
la source
Aide à récupérer plusieurs fichiers d'une révision donnée
Lorsque vous essayez de résoudre des conflits de fusion, cet assistant est très utile:
GitHub en amont .
Usage:
Résultat: les éléments suivants contiennent les versions alternatives des fichiers:
De cette façon, vous conservez l'extension de fichier pour que votre éditeur ne se plaint pas et puisse facilement trouver l'ancien fichier juste à côté du plus récent.
la source