Öggl / Kofler | Git | E-Book | www2.sack.de
E-Book

E-Book, Deutsch, 421 Seiten

Reihe: Rheinwerk Computing

Öggl / Kofler Git

Projektverwaltung für Entwickler und DevOps-Teams
3. Auflage 2025
ISBN: 978-3-367-11259-3
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection

Projektverwaltung für Entwickler und DevOps-Teams

E-Book, Deutsch, 421 Seiten

Reihe: Rheinwerk Computing

ISBN: 978-3-367-11259-3
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection



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:

  • 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


Bernd Öggl ist ein erfahrener Systemadministrator und Webentwickler. Bereits seit 2001 erstellt er für Kunden Websites, setzt individuelle Entwicklerprojekte um und gibt sein Wissen auf Konferenzen und in Publikationen weiter.
Öggl / Kofler Git jetzt bestellen!

Weitere Infos & Material


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


2    Learning by Doing


Dieses Kapitel setzt fort, womit wir im vorigen Kapitel begonnen haben: Konkrete Beispiele zeigen Ihnen die praktische Anwendung von Git. Im Unterschied zum Einführungskapitel gehen wir jetzt aber etwas mehr in die Tiefe und stellen Ihnen eine ganze Palette von Werkzeugen vor. Im Detail behandeln wir die folgenden Themen:

  • Installation von Git

  • GitHub-Account einrichten

  • git-Kommando anwenden

  • Authentifizierung (HTTPS vs. SSH, Credential Caching)

  • grafische Git-Benutzeroberflächen

  • Mitarbeit an fremden GitHub-Projekten (Pull-Request)

Bevor Sie loslegen, wollen wir Ihnen noch den Mund wässrig machen für Kapitel 3, »Git-Grundlagen«: Dort erläutern wir die Konzepte von Git. Wenn Sie verstehen möchten, wie Git wirklich funktioniert (und dazu lesen Sie ja dieses Buch, oder?), dann führt an diesen Grundlagen kein Weg vorbei. Und während in diesem Kapitel noch viel von grafischen Hilfsmitteln die Rede ist, konzentriert sich das nächste Kapitel vollständig auf die Anwendung des git-Kommandos in einem Terminalfenster.

2.1    git-Kommando installieren


Das gesamte Buch geht davon aus, dass Ihnen das Kommando git in einer ausreichend aktuellen Version zur Verfügung steht. Auch viele der im weiteren Verlauf vorgestellten Editoren und Entwicklungsumgebungen greifen auf dieses Kommando zurück. Dieser Abschnitt fasst zusammen, wie Sie git installieren.

Downloadlinks und weitere Installationstipps finden Sie hier:

https://git-scm.com/downloads

Git ohne Installation


In manchen Entwicklungsumgebungen (z. B. Visual Studio oder Xcode) sind Git-Bibliotheken bzw. das Kommando git direkt enthalten. Solange Sie ausschließlich mit diesen IDEs arbeiten, erübrigt sich die explizite Installation des git-Kommandos.

Des Weiteren können Sie Git-Grundfunktionen auch direkt auf Webplattformen wie https://github.com oder https://gitlab.com ausprobieren. (Alle Dateien bleiben dabei in den Repositories des Git-Hosters, befinden sich also nicht auf Ihrem Rechner.)

Für die Arbeit mit diesem Buch sollten Sie aber unbedingt die Möglichkeit haben, git als eigenständiges Kommando auszuführen. Testen Sie in einem Terminal, ob git --version funktioniert. Wenn das nicht der Fall ist, installieren Sie git!

Linux


Unter Linux installieren Sie git mit dem jeweiligen Paketverwaltungswerkzeug:

apt install git # Debian, Kali Linux, Raspberry Pi OS, Ubuntu
dnf install git # Fedora/RHEL und Klone

Anstelle von git können Sie bei einigen Distributionen (z. B. Debian, Ubuntu) auch git-all installieren. Damit erhalten Sie außer dem git-Kommando diverse Zusatz-Tools, z. B. die grafische Oberfläche git-gui sowie Werkzeuge, die zwei Versionen einer Datei grafisch vergleichen oder die Branches des Repositorys visualisieren. Allerdings sind mit git-all rund 50 zusätzliche Pakete verbunden. Deswegen empfehlen wir Ihnen, vorerst mit dem Basispaket git zu beginnen und alle anderen Pakete erst bei Bedarf zu installieren.

Mit git --version stellen Sie fest, ob git funktioniert und in welcher Version es zur Verfügung steht. Für die Lektüre dieses Buchs ist es nicht notwendig, dass Sie die allerneueste Version verwenden. Die mit Ihrer Distribution ausgelieferte Version reicht fast immer aus.

git --version
git version 2.50.0

macOS


Unter macOS erhalten Sie git als Teil von Xcode, sofern Sie dessen Command-Line Tool mitinstallieren. Bei Bedarf können Sie die Installation dieser Tools mit dem folgenden Kommando initiieren:

xcode-select --install

Falls Sie Xcode nicht installieren wollen, sollten Sie auf Ihrem Mac HomeBrew einrichten (siehe https://brew.sh). Anschließend installieren Sie das git-Kommando wie folgt:

brew install git

Windows


Unter Windows ist die Sache (wie immer) ein wenig komplizierter: Das Setup-Programm, das Sie von https://git-scm.com/downloads herunterladen können, richtet nämlich nicht nur das git-Kommando ein, sondern installiert auch gleich eine Terminal-Umgebung (die Git Bash) mit den wichtigsten, aus der Linux-Welt bekannten Komponenten, darunter die Shell bash sowie Kommandos wie ls, find, grep, tar, gzip usw. Ebenfalls inkludiert ist die Git GUI, eine einfache grafische Git-Benutzeroberfläche von eher zweifelhaftem Nutzen.

Während des Setup-Prozesses müssen Sie alle erdenklichen Rückfragen beantworten und Optionen auswählen. So viel gleich vorweg: Sie machen nichts verkehrt, wenn Sie die voreingestellten Optionen mit Ausnahme des Editors einfach übernehmen. Trotzdem haben wir uns die Mühe gemacht, die für Einsteiger oft schwer verständlichen Dialoge hier zu dokumentieren.

Abbildung 2.1     Einer der unzähligen Konfigurationsdialoge des Git-Setup-Programms für Windows

  • Installationsort: Normalerweise werden das git-Kommando und die dazugehörigen Tools in das Verzeichnis C:\Program Files\Git installiert. Bei Bedarf können Sie ein anderes Verzeichnis auswählen.

  • Installationsumfang: Im nächsten Dialog wählen Sie aus, welche Komponenten außer dem eigentlichen git-Kommando installiert werden sollen. Standardmäßig zählt dazu die LFS-Erweiterung (Large File Support, siehe auch Abschnitt 10.5, »Ein Blog mit Git und Hugo«). Außerdem legen Sie fest, ob und wo Icons eingerichtet und welche Verknüpfungen zu Dateierweiterungen hergestellt werden sollen.

    In diesem Dialog sollten Sie die Option Add a Git Bash Profile to Windows Terminal aktivieren. Diese Option vereinfacht den Start der Git Bash im Terminal.

  • Editor: Bei der Ausführung einiger git-Kommandos wird automatisch ein Editor gestartet, in dem Sie z. B. Erklärungen zu einem Merge-Vorgang eingeben oder eine Konfigurationsdatei bearbeiten. Üblicherweise verwendet git unter Windows den Editor der Git Bash, nämlich vim. Dessen Charme erschließt sich allerdings nur Linux-Veteranen. Wenn Ihnen vim nicht vertraut ist, sollten Sie in diesem Dialog einen anderen Editor einstellen, der auf Ihrem Rechner installiert ist. Zur Auswahl stehen Notepad++, VSCode sowie dessen Open-Source-Variante VSCodium.

    Beachten Sie, dass es bei dieser Einstellung nicht um den Editor geht, mit dem Sie den Code Ihrer Softwareprojekte bearbeiten – diesbezüglich gibt es keinerlei Einschränkungen. Es geht hier ausschließlich um den Fall, dass das git-Kommando selbst einen Editor starten möchte.

  • Default-Branch-Name: In der Vergangenheit wurde zusammen mit jedem neuen Git-Repository automatisch der Branch master eingerichtet. Mittlerweile ist main üblich. In diesem Dialog können Sie den Namen des Default-Branches frei festlegen. Verwenden Sie main!

  • PATH: Im nächsten Dialog geht es darum, wie das Setup-Programm die Umgebungsvariable PATH einstellt. Diese Variable legt fest, in welchen Verzeichnissen cmd.exe oder die PowerShell nach Programmen sucht:

    • Die Option Use Git from Git Bash only belässt den PATH unverändert. Sie können daher git nur in der Git Bash ausführen, aber nicht in cmd.exe oder der PowerShell.

    • Empfohlen ist die Standardeinstellung Git from the command line and also from 3rd-party software: Damit wird PATH um den Pfad zum git-Kommando erweitert. Das Kommando git kann nun in cmd.exe, in der PowerShell und in der Git Bash aufgerufen sowie von externen Tools genutzt werden.

    • Zuletzt gibt es noch die Möglichkeit Use Git and optional Unix tools from the Command Prompt. In diesem Fall wird auch das Verzeichnis mit allen Linux-Tools der Git Bash zu PATH hinzugefügt. Das hat den Vorteil, dass Sie in cmd.exe, der PowerShell oder dem Terminal Linux-Kommandos wie ls, tar usw. nutzen können. Dem steht aber der Nachteil gegenüber, dass Windows-Standardkommandos wie find oder sort nicht mehr wie gewohnt funktionieren, weil stattdessen deren inkompatible Linux-Varianten zum Einsatz kommen.

      ...


Kofler, Michael
Michael Kofler hat Telematik an der TU Graz studiert und ist einer der erfolgreichsten deutschsprachigen IT-Fachbuchautoren. Zu seinen Themengebieten zählen neben Linux auch IT-Sicherheit, Python, Swift, Java und der Raspberry Pi. Er ist Entwickler, berät Firmen und
arbeitet als Lehrbeauftragter.

Öggl, Bernd
Bernd Öggl ist ein erfahrener Systemadministrator und Webentwickler. Bereits seit 2001 erstellt er für Kunden Websites, setzt individuelle Entwicklerprojekte um und gibt sein Wissen auf Konferenzen und in Publikationen weiter.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.