2013-06-11 18 views
12

U dołu mojego edytora Emacs 23 zauważam, że Emacs zdaje sobie sprawę z tego, że pracuję w katalogu, który jest pod kontrolą wersji, czym jest ten system kontroli wersji i od jakiego działu aktualnie jestem. Całkiem fajne! Ale mówię, że jestem w gałęzi głównej i z linii poleceń robię git commit, a następnie git checkout <branch>. Emacs nadal pokazuje, że jestem w głównej gałęzi. Jak odświeżyć Emacsa tak, aby odzwierciedlał gałąź, w której aktualnie się znajduję, bez zamykania wszystkich moich buforów i restartowania?Jak mogę powiedzieć Emacsowi, że zmieniła się moja gałąź git?

+0

Co stanie się po przeładowaniu pliku? – gcbenison

+0

Czy istnieje polecenie Emacs do ponownego załadowania pliku? – Houdini

+1

'revert-buffer' podobnie jak giordano zasugerował –

Odpowiedz

14

M-xrevert-buffer ale proponuję używać magit-mode zarządzać repo git w Emacsa.

Dla przypomnienia, używam do związania revert-buffer do F5:

(global-set-key [f5] 'revert-buffer) 
+0

Wielkie dzięki! Key-binding jest idealny na razie, ale później wygląda na to, że 'magit-mode' jest bardziej trwałym rozwiązaniem. – Houdini

+5

@Houdini, aby uniknąć denerwującego potwierdzenia za każdym razem, gdy uderzysz * F5 *. Użyj '(global-set-key [f5] (lambda() (interaktywny) (revert-buffer zero t)))' –

6

Aby dodać odpowiedź Giordano, jeśli wiele plików, które są pod git, są otwarte. Następnie otwórz ibuffer (M-xibuffer) oznaczyć bufory chcesz przeładować użyciu m a następnie E następnie (revert-buffer nil t).

+1

Bez potrzeby eval - 'V' uruchamia' ibuffer-do-revert'. Oczywiście istnieje wiele sposobów oznaczania buforów en-masse w ibufferze, więc użyj 'C-h m' aby sprawdzić jego funkcje, jeśli nie jesteś tego obeznany. – phils

+3

Ponadto, jeśli miksujesz ibuffer i kontrolę wersji, prawdopodobnie chcesz również sprawdzić [ibuffer-vc] (https://github.com/purcell/ibuffer-vc). – phils

+0

Wielkie dzięki phils. W końcu zaczynam próbować używać mojego systemu kontroli wersji i edytora w połączeniu ze sobą, zamiast skakać z powrotem do wiersza poleceń dla poleceń 'git'. – Houdini

9

Możesz automatycznie przywrócić bufor, włączając globalny automatyczny tryb przywracania. Jeśli chcesz go włączyć, dodaj następujący kod do pliku konfiguracyjnego.

(global-auto-revert-mode 1) 
(setq auto-revert-check-vc-info t) 
+1

Jeśli otworzysz zbyt wiele buforów, a Twoja maszyna jest gorąca, powinieneś ustawić "auto-revert-interval" znacznie większy. – ngn999