Git in VSCode: Teilweise Dateiänderungen committen

Hallo zusammen,
habt ihr euch jemals gefragt, wie man nur einen Teil eines geänderten Files mit Git und Visual Studio Code committen kann? Ich persönlich habe mich oft danach gesehnt, besonders nachdem ich diese Funktion bereits in PhpStorm verwendet hatte. Aber hey, es ist möglich, und ich möchte euch gerne die Lösung vorstellen.

Auf Stack Overflow bin ich über eine großartige Antwort gestolpert, die genau das erklärt: hier ist der Link. Die Lösung ist eigentlich ziemlich simpel, aber äußerst nützlich. Es ermöglicht euch, nur den Teil eines Files zu committen, den ihr wirklich wollt - eine Funktion, die das Arbeiten mit Git und VSCode noch effizienter macht.

Um euch die Funktionsweise besser zu verdeutlichen, gibt es auch eine Beschreibung in Form eines GIFs, allerdings mit Apple-Shortcuts. Hier ist der Link dazu: hier. Auch wenn die Shortcuts vielleicht nicht für alle relevant sind, vermittelt das GIF dennoch einen guten Eindruck davon, wie die Lösung angewendet wird.

Vielleicht war euch diese Möglichkeit bereits bekannt, aber für mich war es eine neue Erkenntnis, dass dies auch in VSCode möglich ist. Ich hoffe, dieser Tipp ist für euch genauso hilfreich wie für mich!

Den Test des letzten Git-Commit im Terminal ändern

Super easy, einfach commit den paramter --amend im richtigen Verzeichnis aufrufen.

git commit --amend

Dann öffnet sich dein bevorzugter Text-Editor und du kannst easy die Message ändern.

Sollten deine Commits eventuell mit einem "#" anfangen, dann musst du vorher noch folgenden Tipp befolgen: Anpassung des Git-Kommentarzeichens mit 'git config core.commentChar'

VSCode: Source Control findet git-sub-modules nicht

Wenn du in VSCode Subpackages nicht im Source Control siehst, gibt es eine einfache Lösung: .gitmodules.

Mit .gitmodules kannst du Submodule in deinem Projekt konfigurieren. Schau dir dieses Beispiel an:

[submodule "packages/laravia/heart"]
path = packages/laravia/heart
url = git@github.com:laravia/heart.git

In diesem Beispiel liegen die Submodules im Ordner "packages/laravia"

Die .gitmodules-Datei muss im Hauptordner des Projekts liegen. Danach einfach VsCode neu starten, und voilà.

Tipp: Du kannst dies für jedes Subpackage in deinem Projekt wiederholen. Wenn du dies gemacht hast, werden sie im Source Control angezeigt.

Anpassung des Git-Kommentarzeichens mit 'git config core.commentChar'

Durch git config core.commentChar ';' kannst du das Kommentarzeichen in Git auf das Semikolon (';') ändern. So kannst du spezielle Zeichen in deinen Git-Konfigurationsdateien verwenden, ohne dass sie als Kommentare behandelt werden. Zum Beispiel:

git config core.commentChar ';'

Dies ermöglicht dir, Konfigurationsdateien nach deinen Anforderungen anzupassen, ohne Konflikte mit dem Kommentarsyntax zu haben.

Es geht natürlich auch Global, dann musst du es nicht für jedes Projekt einstellen.

git config --global core.commentChar ';'

Wann benötigt man dieses Command überhaupt?

Angenommen deine Commit-Messages starten immer mit einem #-Tag für ein Ticket/Issue-Nummer, dann macht das durchaus Sinn es global einzustellen.

Git: Effektives Git-Merging: Ein File aus einer anderen Branch in den aktuellen Branch einfügen

In diesem Blogbeitrag zeige ich, wie du ein File aus einer anderen Branch in deinen aktuellen Branch in Git mergen kannst. Das ist besonders nützlich, wenn du spezifische Änderungen aus einer anderen Branch übernehmen möchtest, ohne den gesamten Branch zu mergen.

git checkout --patch branch2 file.php

Hierbei wird branch2 als Quellbranch und file.php als die Datei, die wir übernehmen wollen, angegeben.

Nun wirst du nach den Änderungen gefragt. Mit 'y' kannst du die gewünschten Änderungen akzeptieren: Wiederhole diesen Schritt, bis alle gewünschten Änderungen übernommen wurden.

Dein aktueller Branch enthält nun die ausgewählten Änderungen aus branch2.

Dieser Git-Trick ermöglicht es dir, gezielt Änderungen aus anderen Branches in deinen aktuellen Branch zu integrieren, ohne unnötige Merge-Konflikte zu verursachen. Eine praktische Methode, um deine Git-Workflows effizienter zu gestalten.

Wenn mehrere Personen zeitgleich ein Projekt weiter entwickeln, dann kann das öfters gebraucht werden.