Der zeitreisende Entwickler

GitBeginner
Jetzt üben

Einführung

Stell dir vor, du bist ein Entwickler, der an einem Zeitmaschinen-Projekt arbeitet. Plötzlich taucht dein zukünftiges Ich auf und warnt dich vor einem kritischen Fehler im aktuellen Code! Du musst deine laufende Arbeit sofort sichern, den Fehler beheben und anschließend deine ursprüngliche Aufgabe fortsetzen. Diese Herausforderung wird deine Git-Stash-Fähigkeiten in einem riskanten, zeitverzerrenden Szenario auf die Probe stellen!

Stashen, Fixen und Fortsetzen

Ausgangszustand

Du befindest dich im Verzeichnis ~/project. Das Verzeichnis time-machine ist ein neues Git-Repository mit den folgenden Dateien:

  • main-console.txt (Inhalt: "Bug: Temporal Flux Unstable")
  • flux-capacitor.txt (Inhalt: "Work in progress")
  • new-feature.txt (Inhalt: "Untracked feature")

Du kannst den Befehl git status verwenden, um den aktuellen Status des Repositories zu überprüfen.

Aufgaben

  1. Speichere deine aktuellen Änderungen in einem Stash, einschließlich aller nicht verfolgten (untracked) Dateien.
  2. Behebe den "kritischen Fehler" im master-Branch, indem du den Inhalt von main-console.txt in "Fixed: Temporal Flux Stabilized" änderst.
  3. Erstelle aus deinen gestashten Änderungen einen neuen Branch namens future-upgrades.
  4. Stelle sicher, dass die Fehlerbehebung aus dem Master-Branch auch im Branch future-upgrades enthalten ist.

Anforderungen

  • Alle Operationen müssen im Verzeichnis ~/project/time-machine ausgeführt werden.
  • Stelle sicher, dass deine ursprünglichen Änderungen (sowohl verfolgte als auch nicht verfolgte Dateien) im neuen Branch vorhanden sind.
  • Die Fehlerbehebung in main-console.txt muss sowohl im master- als auch im future-upgrades-Branch vorhanden sein.

Beispiel

Nach Abschluss der Herausforderung sollte dein Repository wie folgt aussehen:

Im master-Branch:

main-console.txt (Inhalt: "Fixed: Temporal Flux Stabilized")

Im future-upgrades-Branch:

main-console.txt (Inhalt: "Fixed: Temporal Flux Stabilized")  ## Enthält den Bugfix vom Master
flux-capacitor.txt (Inhalt: "Work in progress")              ## Ursprüngliche verfolgte Änderungen
new-feature.txt (Inhalt: "Untracked feature")                ## Ursprüngliche nicht verfolgte Datei

Hinweis: Um diesen Zustand zu erreichen, musst du sicherstellen, dass beide Branches den Bugfix enthalten, während deine in Arbeit befindlichen Änderungen im Branch future-upgrades erhalten bleiben.

✨ Lösung prüfen und üben

Zusammenfassung

In dieser Herausforderung hast du den Einsatz von Git Stash in einem simulierten Notfallszenario geübt. Du hast gelernt, wie du deine aktuelle Arbeit (einschließlich nicht verfolgter Dateien) schnell zwischenspeicherst, den Kontext wechselst, um ein kritisches Problem zu lösen, und anschließend einen neuen Branch aus deinen gestashten Änderungen erstellst. Diese Fähigkeiten sind entscheidend für einen reibungslosen Workflow, wenn unerwartete Aufgaben anstehen. So kannst du mehrere Verantwortlichkeiten gleichzeitig jonglieren, ohne deine Arbeit zu verlieren oder deine Konzentration zu unterbrechen.

Denk daran: Git Stash ist zwar ein mächtiges Werkzeug zur vorübergehenden Speicherung von Änderungen, eignet sich aber am besten für die kurzfristige Ablage. Für längerfristige Arbeiten oder größere Features ist das Erstellen dedizierter Branches oft der bessere Ansatz. Übe diese Techniken weiter, und du wirst bestens gerüstet sein, um jedes noch so komplexe Entwicklungsszenario zu meistern!