Visual Studio Code in der Git-Shell nutzen

Kein Zweifel: Visual Studio Code ist der aktuell beste Editor für Text und Code – und er unterstützt Git nativ als Sourcecode-Repository.

Aber was, wenn VS Code als Editor für die Git-Kommandozeile verwendet werden soll, also um Commit-Messages anzuzeigen,  Interactive-Rebase-Listen zu erstellen, Diffs zwischen zwei Code-Dateien anzuzeigen und so weiter?

Die aktuellen Git Versionen für Windows erlauben es, diese Option bereits bei der Installation zu wählen:

image

Aber wie kann VS Code bei bestehenden Git-Installationen als Standard-Editor festgelegt werden, ohne dass gleich eine Git-Neuinstallation nötig ist?

Da hilft nur eine StackOverflow-Recherche. Es stellt sich heraus, dass die Konfiguration sehr simpel ist. Der Konfigrationsparameter core.editor ist für den Aufruf des Editors verantwortlich:

git config --global core.editor "code --wait"

Nun kann VS Code auch gleich genutzt werden, um das Git-Konfigurationsfile zu editieren und dort VS Code zusätzlich noch als Standard-Diff-Tool zu definieren:

git config --global -e

Folgende Informationen müssen dazu in das Konfigurationsfile eingetragen werden:

[diff]
    tool = default-difftool
[difftool "default-difftool"]
    cmd = code --wait --diff $LOCAL $REMOTE

git-code-config

Das war’s dann schon! Jetzt kann Visual Studio Code in allen Lebenslagen auch auf der Git-Kommandozeile weiterhelfen, zum Beispiel bei…

… Commit-Kommentaren:

git commit

git-code-commit… einem Vergleich des letzten und vorletzten Commits:

git difftool -y head^ head -- Program.cs

git-code-diff
…oder einem einem Interactive Rebase:

git rebase --root --interactive

git-code-irebaseDas – wie ich finde – Beste aber noch zum Schluss: Visual Studio Code versteht auch das Format von Codefiles, in denen Git Merge-Konflike markiert hat, und erlaubt die einfache Auswahl und den Vergleich der zur Verfügung stehenden Codevarianten:

C:\repos\myrepo [master]> git merge mybranch
Auto-merging math.cs
CONFLICT (content): Merge conflict in math.cs
Automatic merge failed; fix conflicts and then commit the result.
C:\repos\myrepo [master +0 ~0 -0 !1 | +0 ~0 -0 !1 !]> code .\math.cs

git-code-conflict-2
Viel Spaß mit Visual Studio Code in der Git-Kommandozeile!

 

 

 

Such das File! Brav!

Kommandozeilentools, die nicht im aktuellen Suchpfad von Windows liegen. PowerPoint-Präsentationen, die ich versehentlich im falschen Verzeichnis gespeichert habe. Mehrmals täglich ärgere ich mich darüber, dass die Windows-Dateisuche entweder quälend langsam abläuft oder aber nicht aktuell ist. Denn oft ist der Index-Service gar nicht aktiviert oder hat die gesuchte Datei noch nicht indiziert.

Abhilfe schafft bei mir seit kurzen das kleine Tool Search Everything, eine absurd schnelle Desktopsuche mit minimalem Footprint – der Installer “wiegt” 1,4 MB und sogar eine portable Version gibt es.

image

Search Everything kann nur Dateinamen suchen – das reicht mir aber in 95% der Fälle. Das Tool arbeitet direkt mit dem NTFS-Filesystem und macht die Suche so schnell, dass Verzögerungen praktisch nicht wahrnehmbar sind. Übrigens: Auch Nicht-NTFS-Pfade können durchsucht werden, dieses Feature muss aber explizit aktiviert werden und die Suche geht für solche Verzeichnisse auch etwas langsamer vonstatten.

Prädikat: Unverzichtbar!