2013-08-09 15 views
13

Wyobraziłem sobie, że mogę pokazać stare wersje pliku używając 'git log filename', aby pokazać zatwierdzenia, a następnie użyć 'git show commit-id: filename' dla starej wersji. Ale to po prostu wprowadza to w mniej.git pokaż starszą wersję pliku w edytorze

Chciałbym móc zobaczyć to w emacs, dzięki czemu mogę nawigować tak, jak jestem przyzwyczajony i aby było podświetlanie składni. Dowiedziałem się, że nie mogę ustawić git core.pager na emacs, ponieważ emacs nie może odczytać ze standardowego wejścia.

Czy ktoś wie, jak mogłem to zrobić? Czy masz inny dobry sposób sprawdzania starych wersji plików?

+2

I * nie * ma lepszego sposobu sprawdzania stare wersje: z vim: p . Prosty 'git show commit-id: nazwa pliku | vim -' i gotowe! – amaurymartiny

+0

Możesz również wypróbować 'most' jako pager, ma on obsługę kolorów. – Mali

+0

Lepsze odpowiedzi dostępne pod adresem http://stackoverflow.com/questions/25420282/using-emacs-and-magit-to-visit-a-file-in-given-commit-branch-etc - w szczególności: 'Cx v ~ 'jest również świetny do przełączania oddziałów. – Ibrahim

Odpowiedz

18

Po prostu użyj > i umieść go w pliku, który możesz otworzyć w emacs.

git show commit-id:filename > oldfile 

Następnie otwórz plik w emacs.

4

Jeśli używasz bash, możesz użyć Zastąpienia Procesu.

gvim <(git show commit-id:filename) 
+0

Kiedy otwiera się emacs, w minibuforze pojawia się "dowiązanie symboliczne do nieistniejącego pliku" i wyświetlany jest pusty bufor. – kodu

+0

Nie testowałem 'emacs <(git show commit-id: filename)', jestem użytkownikiem vima ... To polecenie nie działa z emacs: kiedy emacs otwiera tymczasowy plik utworzony przez komendę '<()', plik już nie istnieje ... – Nimlar

Powiązane problemy