Git Scope – Gastbeitrag von Michael Wölk

Diese Woche kucken wir uns ein praktisches Plugin von Michael Wölk an – Git Scope

Git Scope zeigt Dir alle Deine Änderungen an: entweder die noch nicht committeten, oder alle zu dem Branch. Das ist vor allem dann hilfreich, wenn man ein größeres Feature mit vielen Commits baut, und nicht erst einen PullRequest anlegen will um zu sehen, was man denn alles verändert hat. Praktischerweise kann man hierbei auch gleich Fehler (z.B. Typos) beheben, ohne zwischen BitBucket und PhpStorm immer wieder hin und her wechseln zu müssen.

Aber lassen wir den Autor selbst zu Wort kommen:

Git Scope

Git Scope ist ein hilfreiches IntelliJ/PhpStorm Plugin​ zum Darstellen und Hervorheben von geänderten Code​ (ähnlich wie ‘git diff’, jedoch mit mehreren Vorteilen).
Das Plugin verwendet man als “Tool window”. Man wählt lediglich den Zielbranch aus und sieht alle geänderten Dateien im integrierten File browser (fortlaufend):

 

    

 

Wie man auf den Screenshots erkennen kann, ist es mit nur einem Klick möglich, sich nur die HEAD Changes anzeigen zu lassen oder die zu einem bestimmten Branch. So kann man zwischen dem gewünschten Ziel-Branch und HEAD einfach hin und her wechseln, wenn man das möchte.

Das Plugin macht noch zwei weitere wichtige Dinge:

1. Line Status

Der Line Status aller relevanten Dateien passt sich der ausgewählten Revision (Branch) an.

Das heißt der Line Status verschwindet nicht einfach nach dem Committen! Aus diesem Grund gibt es schließlich viele Entwickler, die mit dem Committen warten, damit Sie den überblick nicht verlieren.

Was ist der Line Status?

Der Line Status ist jeweils links im Editor als vertikale Statusbar zu sehen. Es ist ein Indikator über die Art der Veränderung an der/den Zeile(n) in der Datei. Siehe auch: https://www.jetbrains.com/help/phpstorm/file-status-highlights.html

 

2. Custom Scope

Das Plugin erzeugt einen Custom Scope (Zur Verwendung von Inspections, Search/Replaces, etc. ). Damit ist es z.B. möglich eine globale Suche nur über die geänderten Dateien durchzuführen! Es bietet sich an, um var_dumps, debugger-Statements, etc. schnell zu lokalisieren und zu Entfernen, bevor man einen Pull Request stellt.

https://www.jetbrains.com/help/phpstorm/scopes.html

 

Damit ist das Plugin bzw. dessen Vorteile aber immer noch nur grob erklärt:

Der Usecase, für das es konzipiert wurde ist, dass man den Pull Request bzw seine tatsächliche Arbeit von Anfang an im Blick behält, indem man als Zielbranch master oder integration fixiert.

Bei einem Wechsel in einen anderen Branch, aktualisiert Git Scope sich ebenfalls. Das heißt Git Scope wechselt den Quellbranch und zeigt dessen Änderungen im integrierten File Browser (+ Line Status + Custom Scope).

Um das besser zu Verstehen folgende Anwendungsbeispiele:

“Ich arbeite derzeit an feature-abc. feature-xyz soll jedoch heute noch LIVE gehen, hat aber noch Pullrequest-Tasks die erledigt werden müssen. Also schnell auschecken. Bei dem Hin- und her Gewechsel kommt man schnell durcheinander. Doch Git Scope zeigt sofort nach dem Checkout die geänderten Dateien an und man muss nicht erst ewig nachdenken, suchen oder git Befehle eingeben.”

 

“Ich arbeite derzeit an einem Featurebranch. Ein Kollege möchte jedoch, dass ich seinen Pullrequest reviewe. Das kann ich entweder vermeintlich bequem via BitBucket erledigen oder ich checke seinen Branch bei mir aus. Das Plugin zeigt mir nun sofort an, an welchen Dateien mein Kollege gearbeitet hat.”

 

Nutze den Diff-Viewer im integrierten file browser um mit F7 schnell durch die Änderungen zu steppen!

 Tipps

  • Es ist ebenfalls möglich, einen Commithash anstelle eines Branches zu verwenden
  • STRG+D / Doppel-Klick öffnet eine ausgewählte Datei im Diff-Viewer
  • F4 öffnet eine ausgewählte Datei im Editor

 

About the author

People Enabler at CHECK24