Czy w Git jest polecenie, aby zobaczyć (zrzuconą na standardowe wyjście lub w $PAGER
lub $EDITOR
) określoną wersję określonego pliku?
git
git-commands
git-history-graph
mikrofon
źródło
źródło
git checkout <sha1-of-the-commit-you-need>
późniejgit checkout HEAD
Odpowiedzi:
Możesz użyć
git show
ścieżki z katalogu głównego repozytorium (./
lub../
względnej ścieżki ):Zastąp
REVISION
aktualną wersją (może to być SHA zatwierdzenia Git, nazwa znacznika, nazwa gałęzi, względna nazwa zatwierdzenia lub inny sposób identyfikacji zatwierdzenia w Git)Na przykład, aby wyświetlić wersję pliku
<repository-root>/src/main.c
sprzed 4 zatwierdzeń, użyj:Git dla Windows wymaga ukośników nawet w ścieżkach względem bieżącego katalogu. Aby uzyskać więcej informacji, sprawdź stronę podręcznika dla
git-show
.źródło
Wykonanie tego według daty wygląda następująco:
Zauważ, że
HEAD@{2013-02-25}
oznacza to „gdzie HEAD był w dniu 25.02.2013” w tym repozytorium (używając reflog ), a nie „ostatni zatwierdzenie przed 25.02.2013 w tej gałęzi w historii”.źródło
master
zamiastHEAD@{2013-02-25}
, jeśli jesteś na gałęzigit log --since='2016-04-28 23:59:59 +0100'
?Jeśli lubisz GUI, możesz użyć gitk:
uruchom gitk za pomocą:
Wybierz wersję w górnej części ekranu, np. Według opisu lub daty. Domyślnie dolna część ekranu pokazuje różnicę dla tej wersji (odpowiadająca przyciskowi opcji „łatka”).
Aby zobaczyć plik dla wybranej wersji:
źródło
gitk REVISION /path/to/file
. Może się to przydać, gdy chcesz na przykład sprawdzić pewną wersję.Możesz także określić
commit hash
(często nazywanycommit ID
)git show
poleceniem .W skrócie
git show <commitHash>:/path/to/file
Krok po kroku
git log /path/to/file
commit hash
takie, jakcommit 06c98...
(06c98 ... będący skrótem zatwierdzenia)commit hash
git show <commitHash>:/path/to/file
używająccommit hash
kroku 3 ipath/to/file
kroku 1.Uwaga: dodanie
./
przy określaniu ścieżki względnej wydaje się ważne, tjgit show b2f8be577166577c59b55e11cfff1404baf63a84:./flight-simulation/src/main/components/nav-horiz.html
.źródło
git show <SHA1> --name-only
aby ją zdobyć.Oprócz Jim Hunziker „s odpowiedź
możesz wyeksportować plik z wersji jako,
Mam nadzieję że to pomoże :)
źródło
Aby szybko zobaczyć różnice w starszych wersjach pliku:
źródło
git log -p
pokaże ci nie tylko dzienniki zatwierdzeń, ale także różnicę każdego zatwierdzenia (z wyjątkiem zatwierdzeń scalania). Następnie możesz nacisnąć/
, wprowadzić nazwę pliku i nacisnąćenter
. Naciśnijn
lub,p
aby przejść do następnego / poprzedniego wystąpienia. W ten sposób zobaczysz nie tylko zmiany w pliku, ale także informacje o zatwierdzeniu.źródło
git log -pm
że pokazywałby również zatwierdzenia scalania.git log -p -- filename.txt
aby ograniczyć historię tylko do żądanego pliku.Możesz użyć takiego skryptu, aby zrzucić wszystkie wersje pliku w celu oddzielenia plików:
na przykład
Pobierz skrypt tutaj jako odpowiedź na kolejne podobne pytanie
źródło
git_root
,git_log_short
Agit_log_message_for_commit
brakuje.SPOSÓB 1: (Wolę w ten sposób)
git reflog
git diff-tree --no-commit-id --name-only -r <commitHash>
git show <commitHash>:/path/to/file
SPOSÓB 2:
git reflog
git reset --hard %commit ID%
źródło
Pomocnik, aby pobrać wiele plików z danej wersji
Podczas próby rozwiązania konfliktów scalania ten pomocnik jest bardzo przydatny:
GitHub w górę .
Stosowanie:
Wynik: poniższe zawierają alternatywne wersje plików:
W ten sposób zachowujesz rozszerzenie pliku, aby Twój edytor nie narzekał i mógł łatwo znaleźć stary plik tuż obok nowszego.
źródło