Mam plik „ main.cpp
” otwarty w moim edytorze.
Chcę też zobaczyć poprzednią wersję „ main.cpp
” w edytorze.
Sposób, w jaki to teraz robię, jest taki.
close "main.cpp" in the editor
prompt> mv main.cpp tmp
prompt> git checkout HEAD^ main.cpp
prompt> mv main.cpp old_main.cpp
prompt> mv tmp main.cpp
prompt>
open "main.cpp" and "old_main.cpp" in the editor
Czy można to uprościć, więc nie muszę zamykać pliku „main.cpp” w edytorze?
Mam nadzieję, że jest to wariant, git-checkout
który może to zrobić.
AKTUALIZACJA: używam git na Mac OSX 10.5.7
prompt> git --version
git version 1.6.0.4
prompt>
AKTUALIZACJA 2: Jakub Narębski odpowiedź brzmi:
prompt> git show HEAD^:dir1/dir2/dir3/main.cpp > old_main.cpp
prompt>
AKTUALIZACJA 3: Odpowiedź Karmiego, dla konkretnej wersji:
prompt> git show 4c274dd91dc:higgs/Higgs.xcodeproj/project.pbxproj > old_project.pbxproj
prompt>
Odpowiedzi:
Możesz do tego użyć „git show”:
(Zwróć uwagę, że
:
pomiędzyHEAD^
imain.cpp
)<revision>:<path>
jest znak dwukropka [ ] . Składnia jest opisana na stronie podręcznika git rev- pars, obok ostatniego punktu w sekcji „Określanie wersji”:Zauważ, że
<path>
tutaj jest PEŁNA ścieżka względem górnego katalogu twojego projektu, tj. Katalogu z.git/
katalogiem. (Lub ściślej mówiąc do „ <revision> ” (którym ogólnie może być dowolny <tree-ish> , tj. Coś, co reprezentuje drzewo))Jeśli chcesz użyć ścieżki względem bieżącego katalogu, musisz użyć
./<path>
składni (lub../path
przejść z bieżącego katalogu).Edytuj 2015-01-15: dodano informacje o względnej składni ścieżki
W większości przypadków można uzyskać te same dane wyjściowe za pomocą polecenia niskiego poziomu (hydraulika)
git cat-file
:źródło
Wystarczy dodać do odpowiedzi Jakuba: nie musisz nawet przekierowywać wyjścia do pliku
>
, jeśli jesteś zainteresowany jedynie przeglądaniem zawartości pliku w terminalu. Możesz po prostu biec$ git show 58a3db6:path/to/your/file.txt
.źródło