Czy można otworzyć konkretną wersję pliku w Emacsie za pomocą Magit bez zmiany bieżącej gałęzi?
Wprowadziłem zmiany lokalne do wersji, w której zmodyfikowane funkcje zostały zastąpione funkcjami w innym pliku. Chciałbym otworzyć starą wersję moich zmian w osobnym buforze, aby móc porównać zmiany obok siebie.
Moje obecne hacky rozwiązanie to uruchomić, git show <branch pre-rebase>:file > old_file
a następnie otworzyć old_file
w Emacs.
git-timemachine
ale ponieważ mój kod został ponownie wyrenderowany, nie sądzę, aby działał, ponieważ stary kod nie jest częścią historii bieżącego oddziału?Odpowiedzi:
Możesz wyświetlić plik dla określonej wersji za pomocą M-x
magit-find-file
RET<filename>
RET.Lub możesz najpierw wyświetlić różnicę do zatwierdzenia, naciskając RETją, przechodząc do pliku wewnątrz różnicy, a następnie naciskając RETponownie.
źródło
M-x magit-log-buffer-file
przenieś linię do żądanego zatwierdzeniaM-x magit-find-file
. Wtedy wartością domyślną będzie zatwierdzenie. Muszę podać ścieżkę do pliku, ponieważ nie jest on pobierany z bufora dziennika.magit-find-file
się z bufora do przeglądania plików, a następnie po prostu wpiszRET
w drugim monicie (odpowiedni plik jest oferowany jako domyślny).Można to zrobić za pomocą zwykłego VC (wbudowanego w Emacsa), bez Magita. Wpisz
C-x v ~
i wpisz żądaną wersję. Rozumie tagi i skróty SHA1, a także zwykłe~1
sufiksy itp.źródło