Adaptado de a resposta para Qual é o oposto de git diff HEAD^
? :
Primeiro, para tornar sua vida mais fácil mais tarde, você pode configurar um alias local para encontrar o commit inicial e o filho de um commit particular (Nota: isso nem sempre é possível devido à forma como DAG funciona)
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"
Então você pode verificar o commit inicial e percorrer o código verificando cada child-sha:
git checkout $(git first-sha)
git checkout $(git child-sha)
Se você é novo no git, sugiro ler um artigo que escrevi sobre Percorrer os Commits que detalha mais sobre cada um dos comandos sendo usados