Dieser Lernzettel richtet sich nach den möglichen Themen von Teil 2 der gestreckten Abschlussprüfung (GAP) für Fachinformatiker Anwendungsentwicklung vom IT-Berufe-Podcast.
Inhaltsverzeichnis
Werkzeuge zur Versionsverwaltung einsetzen
Auswahlkriterien
- Skalierbarkeit: Kann das Werkzeug mit der Größe des Projekts wachsen?
- Benutzerfreundlichkeit: Ist die UI/CLI intuitiv?
- Community und Support: Wie gut ist die Dokumentation und gibt es eine aktive Community?
- Kompatibilität: Wie gut lässt sich das Werkzeug in bestehende Systeme und Workflows integrieren?
Eigenschaften eines Versionsverwaltungssystems
Konsistenz
- Sicherstellung, dass alle Änderungen fehlerfrei sind.
Rückverfolgbarkeit
- Jede Änderung kann zu ihrem Urheber zurückverfolgt werden. (z.B. git blame)
Parallelität
- Unterstützt die parallele Arbeit mehrerer Entwickler.
SVN, CVS, TFS mit Source Safe, Git
SVN (Subversion)
- Zentralisiertes VCS.
- Vorteile: Einfache Modellstruktur, ACL-Unterstützung.
- Nachteile: Langsamer als Git, keine lokale Historie.
CVS (Concurrent Versions System)
- Älteres, zentralisiertes System.
- Vorteile: Einfach zu lernen.
- Nachteile: Veraltet, Sicherheitsrisiken.
TFS mit Source Safe
- Von Microsoft entwickelt.
- Vorteile: Gute Integration mit Visual Studio.
- Nachteile: Weniger flexibel, teuer.
Git
- Dezentralisiertes VCS.
- Vorteile: Schnell, flexibel, open source.
- Nachteile: Recht steile Lernkurve.
VCS vs. DVCS
VCS (Version Control System)
- Zentralisiertes System.
- Beispiel: SVN.
- Vorteile:
- Zentrale Anlaufsstelle für Code und Historie.
- Zentrale Zugriffskontrolle.
- Nachteile:
- Single Point of Failure durch zentralen Server.
- Langsamere Vorgänge bei schlechter Verbindung.
- Nicht einwandfrei offline nutzbar.
DVCS (Distributed Version Control System)
- Dezentralisiertes System.
- Beispiel: Git.
- Vorteile:
- Flexibles unabhängiges Arbeiten.
- Schnell, da zunächst lokal.
- Redundanz durch mehrere Kopien.
- Nachteile:
- Steilere Lernkurve für Einsteiger.
- Höherer Speicherbedarf durch vollständige Kopien.
- Potenziell komplexere Code-Konflikte.
Unterschiede
- VCS hat einen zentralen Server, DVCS nicht.
- DVCS ermöglicht lokale Commits, VCS nicht.
Nutzen und Anwenden einschlägiger Systeme
Git als Beispiel
Funktionen
Commit
- Änderungen festhalten.
Revert
- Änderungen rückgängig machen.
Branch
- Verschiedene Abzeigungen des Codes
Merge
- Änderungen aus verschiedenen Branches zusammenführen.
Cherry-Pick
- Einzelne Commits von einem Branch auf einen anderen übertragen.
Pull/Push
- Änderungen vom/zum Remote-Repository übertragen.
Rebase
- Branch auf einen neueren Stand aktualisieren, ohne die Historie zu ändern. (Die Historie des Branches ändert sich aber.)
Übliche Workflows im Team
Pull/Merge Requests
- Eine Änderung wird vorgeschlagen und muss von Teammitgliedern überprüft werden, bevor sie in den Hauptbranch gemergt wird.
Weiteres Lernmaterial
Die mit Sternchen (*) gekennzeichneten Links sind sogenannte Affiliate-Links. Wenn du auf so einen Affiliate-Link klickst und über diesen Link einkaufst, bekomme ich von dem betreffenden Online-Shop oder Anbieter eine Provision. Für dich verändert sich der Preis nicht.