Magit noch effektiver nutzen?

8

Nach einem mehrstündigen Test auf git mit Shell wechselte ich zu magit

Es ist ziemlich ordentlich und effizient: Ich muss nicht mehr "git" eingeben, um einen Git-Befehl aufzurufen!

Aber ich habe immer noch einen Nachteil beim Vergleich der Shell-Befehlszeile gefunden

Jedes Mal, wenn ich : eintippte, um den Befehl git aufzurufen, erschien die Ausgabe im anderen Fenster. Ich musste C-x o eingeben, um zurückzuschalten, und dann den Befehl git erneut eingeben.

Gibt es einen besseren Weg, weiter zu tippen und gleichzeitig auf die Ausgabe zu schauen, außer dem Shell-Modus in Emacs?

Sollte ich die Ausgabe an irgendeinen anderen Modus binden? welcher? oder eine elegantere Lösung?

Vielen Dank

    
sfszh 15.04.2011, 12:49
quelle

3 Antworten

4

Ich stimme Brian zu, was versuchst du zu tun, was Magit nicht mit einem einfachen Schlüsseltrigger tun kann? Es gibt wahrscheinlich schon eine Schlüssel-Bindung dafür. Wenn nicht, gehe ich einfach C-z in die Shell und führe den Befehl aus, dann tippe fg , um Emacs wieder in den Vordergrund zu bringen.

Bearbeiten: Mein Ablauf geht so.

  1. Ich beginne den Tag bei der Arbeit. Ich gebe git diff in die Befehlszeile ein, um zu sehen, ob ich noch Änderungen vom vorherigen Tag habe (vergiss nicht aktivierte Farben) !) Der Grund, warum ich das in der Kommandozeile als Magit benutze ist, weil ich noch nicht in Emacs bin.
  2. Ich öffne entweder die unkompilierten Dateien in emacs emacs file1 file2 oder ich öffne einige Dateien, an denen ich gerade arbeite.
  3. Ich code, bis ich einen Fehler behoben oder eine neue Funktion fertiggestellt habe.
  4. In emacs gebe ich C-c i ein, um das Statusfenster von Magit zu öffnen.
  5. Ich scrolle runter zum Abschnitt Änderungen und neben jeder Datei drücke Tab, um ein diff von jeder Änderung zu sehen. Ich drücke entweder s , um diese Änderungen zu übernehmen, oder u , um diese Änderungen zu deaktivieren.
  6. Optional kann ich den diffs-Code durchsehen und dieselben s und u ausführen, um Abschnitte des Codes zu staging und unstaging zu machen. Nützlich, wenn ich irgendwo einen Debug-Code hatte und ihn löschen möchte.
  7. Nachdem ich bestätigt habe, dass alle meine Änderungen gut aussehen und inszeniert sind, gebe ich c ein, um das magit-edit-log zu öffnen. Ich tippe meine Commit-Nachricht und gebe dann C-c C-c ein, um sie zu committen. Dann P , um es zu schieben. Fertig!

Beachten Sie, dass dies wie eine Menge Schritte klingt, aber es wird schnell natürlich und der ganze Prozess dauert buchstäblich 30 Sekunden für mich, um meine ganze Reihe von Änderungen zu differieren, sie zu inszenieren und sie mit einer Nachricht zu beglaubigen. Alle während des Aufenthaltes in Emacs. So viel einfacher als runter in die Befehlszeile zu gehen.

Manchmal wird ein Fehler zurückgegeben, wenn ich einen Push über Magit mache, der normalerweise durch neuen Code im Remote-Repo verursacht wird, den ich ziehen muss, bevor ich drücke. In diesem Fall F zu ziehen Änderungen dann P erneut zu drücken. Ehrlich gesagt, aus irgendeinem Grund, anstatt durch magit, ich im Allgemeinen nur Ctrl-z in dieser Situation, Drop-Down in Shell, git pull , und git push .

Edit: Ich denke, ich erinnere mich an Magits Standard-Diff-Farben, die ziemlich scheußlich sind. Ich benutze folgendes in meinen .emacs Ich bin mir sicher, dass ich von irgendwo gestohlen habe:

%Vor%     
Mauvis Ledford 01.05.2011 08:08
quelle
2

Normalerweise verwende ich Magits eingebaute Befehle für den Großteil meiner Arbeit, wenn ich Magit benutze, und benutze nur ein reguläres Terminal, wenn ich Dinge tun muss, die ich aus Magits eingebauten Befehlen nicht machen kann. Magit hat eingebaute Befehle für fast all meinen täglichen Gebrauch; was benutzt du regelmäßig, dass Magit nicht liefert und du wärst sowieso nicht in einem vollwertigen terminal?

    
Brian Campbell 15.04.2011 15:30
quelle
0

Ein Hinweis auf magit-run* löst das Problem. Stört möglicherweise andere Aufrufe von magit-run* , ich habe das nicht weiter getestet ...

%Vor%     
thisirs 26.11.2012 16:34
quelle

Tags und Links