Grundkonzepte
Geschichte von Git
Dezentrale vs. zentrale Versionsverwaltung
Datenspeicher: Workspace, Staging, Repository, Remote Tracking Branches, Remote Repositories, Stash, Branches
Konzept der Git-Hash-Werte
Verweise auf Commits und anderen Referenzen
Git-Werkzeuge
Git-Clients
Kommandozeilenwerkzeuge (git.exe/git u.a.)
GUI-Werkzeuge wie z.B. Visual Studio, VSCode, Eclipse, SourceTree, TortoiseGit und GitHub Desktop (andere möglich)
Einstieg in Git
Initiale Konfiguration / User Settings
Grundoperationen für die lokale Arbeit
Lokale Repositories anlegen
Repositories klonen
Staging Area und Commits
Dateien von der Versionierung ausschließen (.gitignore)
Umgang mit leeren Verzeichnissen
Dateien umbenennen und Dateien löschen
Statusinformationen und Versionsgeschichte anzeigen
Änderungen verwerfen/rückgängig machen (Undo / Reset)
Tagging (Tags)
Stashing
Suche im Repository
Branching und Merging
Branch erstellen
Arbeiten im Branch
Wechsel zwischen Branches
Merging, Rebasing, Cherry-Picking
Merge Modelle: Fast forward, merge, rebase + merge
Umgang mit Konflikten (Konfliktlösung, Abbrechen)
Werkzeuge für die Konfliktbearbeiteung
Branches löschen
Das Gitflow-Konzept für Branching und Merging (Feature Branches, Release Branches, Hotfix Branches)
Git Branch Policies
Remote Repositories
Klonen eines Remote Repositories
Arbeiten mit Remotes
Remotes einrichten
Austausch zwischen Repositories (Fetch, Pull und Push)
Pull-Requests
Aufbauwissen und Praxis mit Git
Dezentrales Arbeiten mit Git
Typische Workflows im Projektalltag
Gemeinsames Arbeiten auf einen Branch
Mit Feature-Branches und Hotfix-Branches entwickeln
Ein Release erstellen
Verschiedene Release-Branching-Strategien
Organisation von Repositories und Projekten
Sinnvolle Regeln und Policies für Pull Requests
Das Dateisystem aufräumen
Grenzen von Git
Git-Erweiterungen
Git Submodules
Tipps & Tricks
Best Practices
Optionale Themen: Spezielle Git-Server/Git-Anbieter zur Auswahl
- GitHub
- GitLab
- Gitea
- Bitbucket
- AWS CodeCommit
- Git in Azure DevOps (ehemals Team Foundation Server (TFS) / Visual Studio Team Services (VSTS))