Avec git, comment puis-je revenir au premier commit, puis parcourir l'historique?

6

J'ai cloné un projet de Github et je souhaite maintenant revenir au premier commit, comment pourrais-je le faire? De plus, une fois que je suis revenu au premier commit, comment aller au second commit, puis du deuxième au troisième et ainsi de suite.

new_to_git
la source
1
Dupliquer au débordement de pile: Git, Revenir à un commit par SHA hash?
Bobby
@Bobby: En un sens, c'est dupe, mais l'application spécifique de cette révision chronologique de chaque révision est un peu différente. Pas beaucoup, cependant.
Daniel Andersson
@ DanielAndersson: Pas vraiment, du moins pas à mon avis. "Extraire une révision spécifique" n'est pas autant différent de "Extraire une révision spécifique et ensuite extraire la prochaine révision". Bien que, sachant à propos de git log aiderait ici.
Bobby
pourquoi voudriez-vous faire cela?, pouvez-vous expliquer ce que vous essayez de faire, plutôt que ce que vous voulez faire?
KurzedMetal

Réponses:

7

Vous pouvez vérifier n'importe quelle révision en donnant son identifiant SHA1:

git checkout <SHA1>

Un script d'aide appelé git-walk a été fait pour cela. Même si vous n'utilisez pas le script explicite, examinez le code (très simple) pour voir ce qui est fait.

Daniel Andersson
la source
0

pour tous les fichiers, essayez

git show HEAD 

pour un fichier particulier, essayez

git log -p filename
Truong Ha
la source
0

Adapté de la réponse à Quel est le contraire de git diff HEAD^? :

Premièrement, pour vous simplifier la vie plus tard, vous pouvez configurer un alias local pour trouver le commit initial et l'enfant d'un commit particulier. (Remarque: ce n’est pas toujours possible à cause de la façon dont un DAG travaux)

git config --local alias.first-sha "!git rev-list --all        | tail -n 1"
git config --local alias.child-sha "!git rev-list HEAD..master | tail -n 1"

Ensuite, vous pouvez extraire la validation initiale et parcourir le code en vérifiant chaque enfant:

git checkout $(git first-sha)
git checkout $(git child-sha)

Si vous êtes nouveau sur Git, je vous suggère de lire un article que j'ai écrit sur Traverser les commits qui détaille plus sur chacune des commandes utilisées

KyleMit
la source