Git gehört zum unverzichtbaren Handwerkszeug aller IT-Profis und darf in keiner Toolbox fehlen. Ob Sie Konfigurationsdateien versionieren wollen, an Open-Source-Projekten mitarbeiten oder im Team komplexe Anwendungen entwickeln: Git sorgt dafür, dass Sie den Überblick behalten. Daher lernen Sie hier nicht nur, wie Sie Änderungen einchecken und fremde Repositorien klonen, sondern erfahren auch, wie Git Ihnen den Arbeitsalltag leichter macht. Schnelleinstieg mit Praxistipps und Kommandoreferenz inklusive.
Aus dem Inhalt:
Vorwort ... 9
1. Git in zehn Minuten ... 13
1.1 ... Was ist Git? ... 13
1.2 ... Software von GitHub herunterladen ... 16
1.3 ... Programmieren lernen mit Git-Unterstützung ... 18
2. Learning by Doing ... 23
2.1 ... git-Kommando installieren ... 23
2.2 ... GitHub-Account und -Repositories einrichten ... 31
2.3 ... Mit dem Kommando 'git' arbeiten ... 38
2.4 ... Authentifizierung ... 52
2.5 ... Entwicklungsumgebungen und Editoren ... 64
2.6 ... An einem fremden GitHub-Projekt mitarbeiten ... 71
3. Git-Grundlagen ... 75
3.1 ... Begriffe und Konzepte ... 75
3.2 ... Die Git-Datenbank ... 80
3.3 ... Commits ... 84
3.4 ... Commit-Undo ... 92
3.5 ... Branches ... 100
3.6 ... Merge ... 107
3.7 ... Stashing ... 114
3.8 ... Remote Repositories ... 116
3.9 ... Merge-Konflikte lösen ... 128
3.10 ... Rebasing ... 135
3.11 ... Tags ... 140
3.12 ... Referenzen auf Commits ... 146
3.13 ... Git-Interna ... 151
4. Datenanalyse im Git-Repository ... 155
4.1 ... Commits durchsuchen (git log) ... 155
4.2 ... Dateien durchsuchen ... 166
4.3 ... Fehler suchen (git bisect) ... 172
4.4 ... Statistik und Visualisierung ... 173
5. GitHub ... 181
5.1 ... Pull-Requests ... 182
5.2 ... Actions ... 187
5.3 ... Paketmanager (GitHub Packages) ... 196
5.4 ... Automatische Sicherheits-Scans ... 201
5.5 ... Weitere GitHub-Funktionen ... 205
5.6 ... GitHub CLI ... 211
5.7 ... Codespaces ... 215
6. GitLab ... 219
6.1 ... On Premises versus Cloud ... 220
6.2 ... Installation ... 221
6.3 ... Das erste Projekt ... 228
6.4 ... Pipelines ... 230
6.5 ... Merge-Requests ... 240
6.6 ... Web-IDE ... 243
6.7 ... GitPod ... 244
7. Azure DevOps, Bitbucket, Gitea und Gitolite ... 247
7.1 ... Azure DevOps ... 247
7.2 ... Bitbucket ... 252
7.3 ... Gitea ... 254
7.4 ... Gitolite ... 265
8. Workflows ... 269
8.1 ... Anweisungen für das Team ... 269
8.2 ... Solo-Entwicklung ... 270
8.3 ... Feature-Branches für Teams ... 272
8.4 ... Merge/Pull-Requests ... 279
8.5 ... Long-running Branches -- Gitflow ... 283
8.6 ... Trunk-based Development ... 288
8.7 ... Welcher Workflow ist der Richtige? ... 291
9. Arbeitstechniken ... 293
9.1 ... Hooks ... 293
9.2 ... Prägnante Commit-Messages ... 298
9.3 ... Submodule und Subtrees ... 305
9.4 ... Mehr Komfort in Bash und Zsh ... 316
9.5 ... git diff mit 'delta' lesbarer darstellen ... 319
10. Git in der Praxis ... 321
10.1 ... Etckeeper ... 322
10.2 ... Dotfiles mit Git verwalten ... 325
10.3 ... Zugriff auf Subversion mit git-svn ... 332
10.4 ... Von SVN zu Git migrieren ... 336
10.5 ... Ein Blog mit Git und Hugo ... 341
11. Git-Probleme und ihre Lösung ... 353
11.1 ... Git-Fehlermeldungen (Ursache und Lösung) ... 354
11.2 ... Leere Verzeichnisse speichern ... 361
11.3 ... Merge für eine einzelne Datei ... 362
11.4 ... Dateien permanent aus Git löschen ... 363
11.5 ... Ein Projekt aufteilen ... 371
11.6 ... Commits in einen anderen Branch verschieben ... 372
12. Kommandoreferenz ... 375
12.1 ... git-Kommando ... 375
12.2 ... Revisionssyntax ... 408
12.3 ... git-Konfiguration ... 409
Index ... 415