La page de manuel dit que log montre les journaux de commit et reflog gère les informations reflog. Que sont exactement les informations reflog et qu'ont-elles de plus que le journal ? Le journal semble beaucoup plus détaillé.
Réponses
Trop de publicités?git log
commencera à partir de l'actuel TETE qui pointe vers une branche (comme maître ) ou directement à l'objet commit (sha code), et va en fait scanner les fichiers objets à l'intérieur de .git/objets du répertoire commit après commit en utilisant le parent qui existent dans chaque objet commit.
Expérimentez : faites pointer le HEAD directement sur un commit : git checkout a721d
(créer un nouveau repo et le remplir avec des commits et des branches. remplacer a721d
avec une partie de votre code commit) et supprimer les branches rm .git/refs/heads/*
Maintenant git log --oneline
ne montrera que TETE et ses ancêtres commits.
git reflog d'autre part utilise le journal direct qui est créé à l'intérieur de .git/logs
Expérimentation : rm -rf .git/logs
y git reflog
est vide.
Quoi qu'il en soit, même si vous perdez tous les tags, toutes les branches et tous les logs dans le dossier logs, les objets commits sont dans le dossier .git/objets afin que vous puissiez reconstruire l'arbre si vous trouvez tous les commits pendants : git fsck
- Réponses précédentes
- Plus de réponses