Visual Studio, Git und Codex gemeinsam nutzen: So funktioniert der Workflow

Wer ein .NET-Projekt mit Visual Studio entwickelt und zusätzlich Codex für Änderungen am Quellcode verwendet, arbeitet schnell mit mehreren Werkzeugen gleichzeitig. Dabei stellen sich einige praktische Fragen:

  • Muss Visual Studio nach Änderungen durch Codex neu gestartet werden?
  • Erkennt Codex Änderungen, die in Visual Studio vorgenommen wurden?
  • Was bedeuten Fetch, Pull, Push und Sync in der Git-Verwaltung?
  • Wie verhindert man, dass sich Visual Studio und Codex gegenseitig Änderungen überschreiben?

Die gute Nachricht: Visual Studio, Git und Codex lassen sich problemlos parallel verwenden. Man sollte lediglich einige grundlegende Regeln beachten.

Git in Visual Studio: Fetch, Pull, Push und Sync

Visual Studio besitzt eine integrierte Git-Unterstützung. Im Fenster Git-Änderungen befinden sich unter anderem die Funktionen Fetch, Pull, Push und Sync.

Auch wenn häufig GitHub als Remote-Repository verwendet wird, handelt es sich dabei grundsätzlich um normale Git-Funktionen.

Fetch: Änderungen vom Server prüfen

Mit Fetch fragt Visual Studio das Remote-Repository nach neuen Commits und Branches ab.

Dabei werden zwar Informationen und Commits heruntergeladen, der aktuelle lokale Branch wird jedoch noch nicht verändert.

Der entsprechende Git-Befehl lautet:

git fetch

Fetch eignet sich deshalb sehr gut, wenn man zunächst überprüfen möchte, ob sich auf GitHub etwas geändert hat.

Vereinfacht gesagt:

Fetch schaut nach neuen Änderungen, übernimmt sie aber noch nicht in den eigenen Arbeitsstand.

Pull: Änderungen herunterladen und übernehmen

Pull geht einen Schritt weiter.

Die Änderungen vom Remote-Repository werden nicht nur heruntergeladen, sondern anschließend auch in den aktuell verwendeten lokalen Branch integriert.

Vereinfacht besteht Pull aus:

Fetch
+
Merge oder Rebase

Wenn beispielsweise ein anderer Entwickler Änderungen nach GitHub gepusht hat, können diese mit Pull in das lokale Projekt übernommen werden.

Dabei können allerdings Merge-Konflikte entstehen, wenn dieselben Bereiche einer Datei lokal und remote verändert wurden.

Push: Eigene Änderungen hochladen

Mit Push werden lokale Commits auf das Remote-Repository übertragen.

Der entsprechende Befehl lautet:

git push

Wichtig ist dabei:

Git überträgt nicht einfach alle geänderten Dateien. Änderungen müssen zunächst in einem Commit gespeichert werden.

Der typische Ablauf sieht beispielsweise so aus:

Dateien ändern
↓
Commit erstellen
↓
Push

Falls auf GitHub bereits neuere Commits vorhanden sind, die lokal noch fehlen, kann Git einen Push ablehnen. In diesem Fall sollte normalerweise zuerst ein Pull durchgeführt werden.

Sync: Pull und Push kombinieren

Visual Studio bietet zusätzlich die Funktion Sync an.

Dabei wird der lokale Branch mit dem Remote-Repository synchronisiert.

Vereinfacht:

Pull
↓
Push

Zunächst werden also Änderungen vom Server übernommen und anschließend eigene Commits hochgeladen.

Ein typischer Git-Workflow

Für kleinere Projekte oder Einzelentwickler ist folgender Ablauf meistens ausreichend:

Pull
↓
Code bearbeiten
↓
Projekt testen
↓
Commit erstellen
↓
Push

Optional kann vorher mit Fetch geprüft werden, ob neue Änderungen vorhanden sind.

Gerade wenn mehrere Entwickler am selben Repository arbeiten, sollte man regelmäßig Pull oder Fetch verwenden.


Codex und Visual Studio gleichzeitig verwenden

Codex kann ein .NET-Projekt direkt im Projektverzeichnis bearbeiten.

Wenn Visual Studio gleichzeitig dieselbe Solution geöffnet hat, ist normalerweise kein Neustart von Visual Studio erforderlich.

Ändert Codex beispielsweise eine Datei wie:

Program.cs
ProjectService.cs
MainPage.xaml
appsettings.json

erkennt Visual Studio die externe Dateiänderung in der Regel automatisch.

Das bedeutet:

Codex ändert Datei
↓
Datei wird auf Festplatte gespeichert
↓
Visual Studio erkennt Änderung

Visual Studio kann also geöffnet bleiben, während Codex am Projekt arbeitet.

Muss das Projekt nach Änderungen neu geladen werden?

Bei normalen Quellcodedateien ist das in der Regel nicht notwendig.

Bei Änderungen an Projekt- oder Solution-Dateien wie:

.csproj
.sln

kann Visual Studio gegebenenfalls verlangen, das Projekt neu zu laden.

Ein kompletter Neustart von Visual Studio ist aber auch dann normalerweise nicht erforderlich.


Was passiert mit einer bereits laufenden Anwendung?

Hier muss zwischen dem Editor und der tatsächlich laufenden Anwendung unterschieden werden.

Visual Studio kann eine geänderte Datei sofort erkennen. Eine bereits laufende Anwendung verwendet den neuen Code aber nicht zwangsläufig sofort.

Je nach Änderung kann Hot Reload den neuen Code übernehmen.

Falls das nicht möglich ist, reicht normalerweise:

Anwendung stoppen
↓
Projekt neu kompilieren
↓
Anwendung erneut starten

Visual Studio selbst muss dafür nicht beendet werden.


Erkennt Codex Änderungen aus Visual Studio?

Ja.

Wenn Codex und Visual Studio auf demselben Projektordner arbeiten, greift Codex auf die dort gespeicherten Dateien zu.

Wird beispielsweise in Visual Studio eine Datei geändert und gespeichert:

Visual Studio
↓
Datei speichern
↓
Datei auf Festplatte
↓
Codex liest aktuelle Version

kann Codex diese Änderung bei seiner nächsten Bearbeitung berücksichtigen.

Ungespeicherte Änderungen sind ein Problem

Eine wichtige Einschränkung gibt es allerdings.

Änderungen, die in Visual Studio noch nicht gespeichert wurden, befinden sich zunächst nur im Editor.

Für Codex liegt auf der Festplatte weiterhin die alte Version der Datei.

Beispiel:

Visual Studio:
neuer Code
↓
noch nicht gespeichert

Festplatte:
alter Code

Codex:
sieht alten Code

Deshalb sollte man Änderungen in Visual Studio immer speichern, bevor Codex mit der Bearbeitung beginnt.


Vorsicht beim gleichzeitigen Bearbeiten derselben Datei

Die größte Fehlerquelle entsteht, wenn Visual Studio und Codex gleichzeitig dieselbe Datei bearbeiten.

Ein Beispiel:

Visual Studio                 Codex
     │                          │
ändert MainPage.xaml     ändert MainPage.xaml
     │                          │
noch nicht gespeichert    speichert Änderung

Visual Studio erkennt anschließend, dass sich die Datei auf der Festplatte geändert hat.

Problematisch wird es insbesondere dann, wenn anschließend die noch ungespeicherte Version aus Visual Studio gespeichert wird. Dadurch könnten die Änderungen von Codex wieder überschrieben werden.

Eine einfache Regel

Visual Studio und Codex können gleichzeitig am selben Projekt arbeiten, sollten aber möglichst nicht gleichzeitig dieselbe Datei verändern.


Mein empfohlener Workflow

Ein übersichtlicher Workflow für die gemeinsame Verwendung von Visual Studio, Codex und Git sieht beispielsweise so aus:

1. Änderungen in Visual Studio durchführen
↓
2. Alle Dateien speichern
↓
3. Codex einen Auftrag geben
↓
4. Codex die Änderungen durchführen lassen
↓
5. Änderungen in Visual Studio überprüfen
↓
6. Projekt kompilieren
↓
7. Anwendung testen
↓
8. Git-Diff kontrollieren
↓
9. Commit erstellen
↓
10. Push durchführen

Durch Git hat man zusätzlich jederzeit die Möglichkeit zu kontrollieren, welche Dateien Codex verändert hat.

Gerade bei größeren Codex-Aufträgen lohnt es sich deshalb, vor Beginn einen Commit zu erstellen.

Damit erhält man einen klar definierten Ausgangspunkt:

funktionierender Stand
↓
Commit
↓
Codex führt Änderungen durch
↓
Git-Diff prüfen

Falls das Ergebnis nicht den Erwartungen entspricht, lassen sich die Änderungen dadurch wesentlich leichter nachvollziehen oder zurücksetzen.

Fazit

Visual Studio und Codex ergänzen sich bei der .NET-Entwicklung sehr gut.

Visual Studio muss nach Codex-Änderungen normalerweise nicht neu gestartet werden, da externe Dateiänderungen automatisch erkannt werden.

Umgekehrt kann Codex auch Änderungen berücksichtigen, die zuvor in Visual Studio vorgenommen wurden – vorausgesetzt, sie wurden gespeichert.

Zusammen mit Git ergibt sich damit ein effizienter Workflow:

Visual Studio
     ↕
Projektdateien
     ↕
Codex

     +
     
Git / GitHub

Die wichtigsten Regeln sind dabei:

  • Änderungen in Visual Studio vor der Arbeit mit Codex speichern.
  • Dieselbe Datei möglichst nicht gleichzeitig in Codex und Visual Studio bearbeiten.
  • Änderungen von Codex anschließend über Git-Diff kontrollieren.
  • Vor größeren automatisierten Änderungen einen Commit erstellen.
  • Visual Studio muss normalerweise nicht neu gestartet werden.

Damit kann Codex problemlos als zusätzlicher Entwicklungsassistent innerhalb eines bestehenden Visual-Studio- und Git-Workflows eingesetzt werden.

Visual Studio, Git und Codex gemeinsam nutzen: So funktioniert der Workflow
Markiert in:                 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert


CAPTCHA-Bild
Bild neu laden