9.0 Ein bisschen Geschichte
Seit seiner Einführung hatte das DVCS-Tool Git einen Standard-Branch mit dem Namen master. Jeder Git-Repository hatte einen master-Branch, es sei denn, ein Entwickler unternahm explizite Schritte zu dessen Entfernung, was selten geschah, da der master-Branch eine wichtige Rolle in der Softwareentwicklung spielt.
Die Verwendung der Begriffe master und slave (Meister und Sklave) in der Computerindustrie zog im Sommer 2020 aufgrund zahlreicher Proteste und wachsender sozialer Unruhen weltweite Aufmerksamkeit auf sich. Im Laufe der öffentlichen Diskussionen tauchten mehrere Alternativen für master auf, darunter default und primary. Der beliebteste Begriff wurde jedoch main.
GitHub ergriff Maßnahmen und verzichtete auf den Begriff master bei der Initialisierung eines Git-Repositories. Das Umschalten von GitHub von master auf main ist in den Konto-Einstellungen unter Repositories oder mit dem Befehl möglich:
$ git branch -m master main
In den Vorlesungen wird weiterhin der Begriff master verwendet. Weitere Informationen zum Wechsel findest du unter den folgenden Links:
9.1 Was ist Git und warum wird es gebraucht
Git ist ein mächtiges Versionskontrollsystem, das verwendet wird, um Änderungen im Quellcode während der Softwareentwicklung nachzuverfolgen. Es ermöglicht Entwicklern, verschiedene Dateiversionen zu speichern und die Arbeit mehrerer Personen an einem gemeinsamen Projekt zu koordinieren.
Die wichtigsten Konzepte von Git:
Repository
Ein Repository (oder "Repo") ist ein Ort, an dem die gesamte Geschichte eines Projekts gespeichert wird, einschließlich aller Änderungen und Dateiversionen. Ein Git-Repository umfasst ein Arbeitsverzeichnis, einen Index (oder Stage) und eine Objektdatenbank.
Commits
Ein Commit ist ein gespeicherter Zustand des Projekts. Jeder Commit in Git enthält Informationen darüber, welche Änderungen am Projekt vorgenommen wurden, von wem und wann. Commits bilden die Projektgeschichte und ermöglichen es, zu jeder früheren Version zurückzukehren.
Branches
Ein Branch ist eine unabhängige Entwicklungslinie. Standardmäßig erstellt Git den main (früher master) Branch. Du kannst neue Branches erstellen, um neue Features oder Fehlerbehebungen zu entwickeln, und sie dann zurück in den Hauptbranch zusammenführen.
Merge und Rebase
Merge und Rebase sind zwei Möglichkeiten, Änderungen von einem Branch in einen anderen zu integrieren. Merge vereint die Geschichten von zwei Branches und erstellt einen neuen Commit, während Rebase die Commits eines Branches an die Spitze eines anderen verschiebt und die Commit-Geschichte ändert.
9.2 Grundlegende Git-Befehle
Hier ist eine Tabelle mit den wichtigsten Git-Befehlen zur Versionsverwaltung:
| Befehl | Beschreibung |
|---|---|
| git init | Initialisiert ein neues Git-Repository im aktuellen Verzeichnis. |
| git clone | Klonen eines Repositories aus der URL in ein neues Verzeichnis. |
| git add | Fügt Dateien dem Index für den nächsten Commit hinzu. |
| git commit | Führt vorbereitete Änderungen im Repository durch. |
| git push | Sendet Änderungen vom lokalen Repository ins entfernte. |
| git pull | Aktualisiert den aktuellen Branch mit der neuesten Version aus dem entfernten Repository. |
| git branch | Zeigt, erstellt oder löscht Branches. |
| git merge | Verschmilzt Änderungen des angegebenen Branches in den aktuellen Branch. |
| git rebase | Verschiebt Änderungen auf eine neue Basis (meistens ein anderer Branch). |
Diese Befehle stellen die grundlegenden Werkzeuge zur Arbeit mit Git dar und ermöglichen es, Änderungen im Code, Branches und Merges in Projekten jeglicher Größe zu verwalten. Wir werden sie detaillierter in den kommenden Vorlesungen behandeln.
9.3 Drei Speicherorte für den Code
Wenn du ein Versionskontrollsystem für deinen Code verwendest, wird dein Code grob gesagt an drei Orten gespeichert:
1. Entferntes Repository:
Dies ist ein zentraler Ort zur Speicherung deines Codes, der normalerweise auf Diensten wie GitHub, GitLab oder Bitbucket gehostet wird. Sie bieten die zentrale Codierungsspeicherung und sind die Basis für die Zusammenarbeit.
Entfernte Repositories ermöglichen es Entwicklern, ihre Änderungen zu teilen, Bemühungen zu synchronisieren und die Projektänderungshistorie zu verwalten. Ein entferntes Repository dient auch als Integrationspunkt für automatisierte Prozesse wie Build, Testen und Anwendungsbereitstellung.
2. Lokales Repository:
Ein lokales Repository ist deine persönliche Kopie des Codes, gespeichert auf deinem Computer. In diesem Repository kannst du alle Git-Operationen (Commits, Branching, Merges) ausführen, ohne eine Internetverbindung zu benötigen.
Lokale Repositories ermöglichen es Entwicklern, isoliert von Kollegen zu arbeiten, zu experimentieren, neue Funktionen zu erstellen oder Fehler zu beheben, bevor die Änderungen zusammengeführt (Merge) und in das entfernte Repository gesendet werden.
3. Arbeitsverzeichnis:
Das Arbeitsverzeichnis auf deinem Computer enthält die aktuellen Projektdateien, an denen du gerade arbeitest. Es ist der Ort, an dem du Dateien anzeigen und ändern, neue Funktionalität hinzufügen oder Fehler beheben kannst.
Nachdem du Änderungen vorgenommen hast, kannst du sie dem Index (Staging Area) hinzufügen und dann im lokalen Repository festhalten. Das Arbeitsverzeichnis ist mit dem aktuellen Branch in deinem Repository verbunden und das Ändern von Branches ändert den Inhalt des Arbeitsverzeichnisses.
Diese Komponenten zusammen bieten eine leistungsstarke Infrastruktur für das Quellcode-Management, sodass Entwickler die Projektgeschichte verwalten, zusammenarbeiten und Verantwortung für den Code teilen können.
9.4 GitHub — das beliebteste kostenlose Repository
GitHub ist die größte Webplattform für das Hosting von Quellcode, die das Versionskontrollsystem Git verwendet. Gegründet im Jahr 2008, hat es sich schnell zu einem der wichtigsten Werkzeuge für Entwickler weltweit entwickelt.
GitHub ermöglicht es Benutzern, Repositories zu erstellen, um Projekte zu verwalten, Änderungen im Code zu kontrollieren und nachzuverfolgen, mit anderen Entwicklern zusammenzuarbeiten und Entwicklung offen oder privat durchzuführen. Es bietet Funktionen wie Forks, Branches, Pull-Requests und Merges, die Entwicklern die einfache Zusammenarbeit an Projekten ermöglichen.
GitHub enthält auch Funktionen zur Nachverfolgung von Problemen, Funktionsanfragen, Aufgabenverwaltung und Wiki für jedes Projekt. Die Plattform integriert sich mit vielen Tools und Diensten und bietet erweiterte Möglichkeiten zur Automatisierung von Entwicklung, Testen und Anwendungsbereitstellung.
GitHub unterstützt eine große Entwicklergemeinschaft, in der aktiv über Best Practices der Programmierung, Projektmanagement und vieles mehr diskutiert wird. Dadurch ist es nicht nur ein Werkzeug zur Projektverwaltung, sondern auch ein Gemeinschaftszentrum, in dem Entwickler Wissen und Erfahrung austauschen können.
9.5 Registrierung auf GitHub
Schritt 1. Besuche https://github.com
Schritt 2. Registriere dich...
Schritt 3. Klicke auf die Schaltfläche "New", um ein neues Repository zu erstellen.
Schritt 4. Gib den Namen des Repositories an und konfiguriere seine Einstellungen.
Schritt 5. Füge dem Projekt eine README-Datei hinzu — diese wird später benötigt.
Schritt 6. Klicke auf "Create repository".
GO TO FULL VERSION