Jeśli dobrze rozumiem...
Jeśli chcesz zobaczyć jaki był stan repo w commicie X (gdzie X to hash commita lub branch), wystarczy `git checkout X`.
Przy okazji: nie patrz na pojedyncze commity jak na "v1", "v2". Najlepiej jakby każdy commit był całym sensownym ciągiem zmian zmieniającym jakąś konkretną funkcjonalność. Tak samo, komentarze (nazwy commitów) nie powinny być "v1", "v2" tylko rzeczy w stylu "add feature XYZ", "fix bug causing ABC by doing XYZ", "refactor function ABC", albo "X jest głupi, wyrzucam go".