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, wie Git Ihnen den Arbeitsalltag leichter macht. Schnelleinstieg mit Praxistipps und Kommandoreferenz inklusive.
Aus dem Inhalt:
- Git in zehn Minuten: der Schnelleinstieg
- Installation und Einrichtung
- Grundlagen: Repos, Commits, Branches, Merging
- GitLab: Projekte lokal hosten
- GitHub: der Marktplatz für Softwareprojekte
- GitHub-Alternativen: Bitbucket, Azure DevOps Services, Gitolite und mehr
- Arbeitstechniken: History, Feature Branches, Stashing, Hooks und mehr
- Workflows: So nutzen Sie Git effektiv
- Best Practices und Troubleshooting
- Kommandoreferenz
Die Fachpresse zur Vorauflage:
t3n: »Das Buch zeigt wie ein gut organisiertes Git-Repo aussieht und wie Git zur effektiven Arbeitshilfe wird. «
Make: Magazin: »Wer in einem neuen Arbeitsumfeld schnell produktiv auf Git umsteigen muss, für den ist das Buch perfekt. «
Inhaltsverzeichnis
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 . . . 37
2. 4 . . . Authentifizierung . . . 50
2. 5 . . . Git spielerisch lernen (Githug) . . . 61
2. 6 . . . Entwicklungsumgebungen und Editoren . . . 63
2. 7 . . . An einem fremden GitHub-Projekt mitarbeiten . . . 72
2. 8 . . . Synchronisation und Backups . . . 74
3. Git-Grundlagen . . . 77
3. 1 . . . Nomenklatur . . . 77
3. 2 . . . Die Git-Datenbank . . . 82
3. 3 . . . Commits . . . 86
3. 4 . . . Commit-Undo . . . 94
3. 5 . . . Branches . . . 102
3. 6 . . . Merge . . . 108
3. 7 . . . Stashing . . . 116
3. 8 . . . Remote Repositories . . . 118
3. 9 . . . Merge-Konflikte lösen . . . 129
3. 10 . . . Rebasing . . . 136
3. 11 . . . Tags . . . 142
3. 12 . . . Referenzen auf Commits . . . 147
3. 13 . . . Git-Interna . . . 152
4. Datenanalyse im Git-Repository . . . 157
4. 1 . . . Commits durchsuchen (git log) . . . 157
4. 2 . . . Dateien durchsuchen . . . 168
4. 3 . . . Fehler suchen (git bisect) . . . 173
4. 4 . . . Statistik und Visualisierung . . . 175
5. GitHub . . . 181
5. 1 . . . Pull-Requests . . . 182
5. 2 . . . Actions . . . 187
5. 3 . . . Paketmanager (GitHub Packages) . . . 195
5. 4 . . . Automatische Sicherheits-Scans . . . 201
5. 5 . . . Weitere GitHub-Funktionen . . . 205
5. 6 . . . GitHub CLI . . . 210
5. 7 . . . Codespaces . . . 214
6. GitLab . . . 217
6. 1 . . . On Premises versus Cloud . . . 218
6. 2 . . . Installation . . . 219
6. 3 . . . Das erste Projekt . . . 226
6. 4 . . . Pipelines . . . 228
6. 5 . . . Merge-Requests . . . 238
6. 6 . . . Web-IDE . . . 241
6. 7 . . . GitPod . . . 242
7. Azure DevOps, Bitbucket, Gitea und Gitolite . . . 245
7. 1 . . . Azure DevOps . . . 245
7. 2 . . . Bitbucket . . . 250
7. 3 . . . Gitea . . . 252
7. 4 . . . Gitolite . . . 263
8. Workflows . . . 267
8. 1 . . . Anweisungen fr das Team . . . 267
8. 2 . . . Solo-Entwicklung . . . 268
8. 3 . . . Feature-Branches fr Teams . . . 270
8. 4 . . . Merge/Pull-Requests . . . 277
8. 5 . . . Long-running Branches -- Gitflow . . . 281
8. 6 . . . Trunk-based Development . . . 286
8. 7 . . . Welcher Workflow ist der Richtige? . . . 289
9. Arbeitstechniken . . . 291
9. 1 . . . Hooks . . . 291
9. 2 . . . Prägnante Commit-Messages . . . 297
9. 3 . . . Submodule und Subtrees . . . 304
9. 4 . . . Mehr Komfort in Bash und Zsh . . . 315
9. 5 . . . Zwei-Faktor-Authentifizierung . . . 317
10. Git in der Praxis . . . 323
10. 1 . . . Etckeeper . . . 324
10. 2 . . . Dotfiles mit Git verwalten . . . 327
10. 3 . . . Zugriff auf Subversion mit git-svn . . . 334
10. 4 . . . Von SVN zu Git migrieren . . . 338
10. 5 . . . Ein Blog mit Git und Hugo . . . 343
11. Git-Probleme und ihre Lösung . . . 355
11. 1 . . . Git-Fehlermeldungen (Ursache und Lösung) . . . 356
11. 2 . . . Leere Verzeichnisse speichern . . . 363
11. 3 . . . Merge für eine einzelne Datei . . . 364
11. 4 . . . Dateien permanent aus Git löschen . . . 365
11. 5 . . . Ein Projekt aufteilen . . . 373
11. 6 . . . Commits in einen anderen Branch verschieben . . . 374
12. Kommandoreferenz . . . 377
12. 1 . . . git-Kommando . . . 377
12. 2 . . . Revisionssyntax . . . 409
12. 3 . . . git-Konfiguration . . . 410