9.0 Ein bisschen Geschichte
Seit seiner Entstehung hatte das Tool Git DVCS einen Standard-Branch namens master
. Jedes Git-Repository hatte einen master
-Branch, es sei denn, der Entwickler unternahm explizite Schritte, um ihn zu entfernen, was selten geschah, da der master
-Branch eine wichtige Rolle in der Welt der Softwareentwicklung spielt.
Der Gebrauch der Begriffe master
und slave
(Meister und Sklave) in der Computerindustrie erregte im Sommer 2020 aufgrund zahlreicher Proteste und wachsender sozialer Unruhen viel Aufmerksamkeit. Im Zuge der öffentlichen Diskussion tauchten mehrere Alternativen für master
auf, darunter default
und primary
. Der beliebteste Begriff wurde jedoch main
.
GitHub hat Maßnahmen ergriffen und den Begriff master
bei der Initialisierung eines Git-Repositories aufgegeben. Der Wechsel von GitHub von master
zu main
ist in den Kontoeinstellungen unter Repositories oder mit dem Befehl möglich:
$ git branch -m master main
In den Vorlesungen wird weiterhin der Begriff master
verwendet. Mehr über den Übergang erfahren Sie unter den folgenden Links:
9.1 Was ist Git und warum brauchen wir es
Git ist ein leistungsstarkes Versionskontrollsystem, das zur Nachverfolgung von Änderungen im Quellcode während der Softwareentwicklung verwendet wird. Es ermöglicht Entwicklern, verschiedene Versionen von Dateien zu speichern und die Arbeit mehrerer Personen an einem gemeinsamen Projekt zu koordinieren.
Grundlegende Git-Konzepte:
Repository
Ein Repository (oder "Repo") ist ein Ort, an dem die gesamte Projektgeschichte gespeichert ist, einschließlich aller Änderungen und Dateiversionen. In Git umfasst ein Repository das Arbeitsverzeichnis, den Index (oder die Staging-Area) und die Objektdatenbank.
Commits
Ein Commit (commit)
ist der gespeicherte 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 einer vorherigen Version zurückzukehren.
Branches
Ein Branch (branch)
ist eine unabhängige Entwicklungslinie. Standardmäßig erstellt Git
den Branch main (früher master)
. 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 (merge)
und Rebase (rebase)
sind zwei Möglichkeiten, um
Änderungen von einem Branch in einen anderen zu integrieren. Merge kombiniert die
Historien beider Branches und erstellt einen neuen Commit, während Rebase die
Commits eines Branches auf die Spitze eines anderen verschiebt und die Commit-Historie ändert.
9.2 Wichtige 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 |
Kloniert ein Repository von der URL in ein neues Verzeichnis. |
git add |
Fügt Dateien zum Index für den nächsten Commit hinzu. |
git commit |
Sichert die vorbereiteten Änderungen im Repository. |
git push |
Sendet Änderungen vom lokalen Repository zum entfernten Repository. |
git pull |
Aktualisiert den aktuellen Branch mit der neuesten Version aus dem entfernten Repository. |
git branch |
Zeigt an, erstellt oder löscht Branches. |
git merge |
Fügt die Änderungen des angegebenen Branches in den aktuellen Branch ein. |
git rebase |
Verschiebt Änderungen auf eine neue Basis (meist ein anderer Branch). |
Diese Befehle stellen die grundlegenden Werkzeuge für die Arbeit mit Git dar und ermöglichen es, Code-Änderungen, Branches und Merges in Projekten jeder Größenordnung zu verwalten. Mehr dazu werden wir in den nächsten Vorlesungen durchgehen.
9.3 Drei Orte zur Speicherung von Code
Wenn du ein Versionskontrollsystem für deinen Code verwendest, wird er grob gesagt an drei Orten gespeichert:
1. Entferntes Repository:
Dies ist ein zentraler Ort zur Speicherung deines Codes, der normalerweise auf Dienste wie GitHub, GitLab oder Bitbucket gehostet wird. Sie bieten eine zentrale Code-Speicherung und sind die Grundlage für die Zusammenarbeit.
Entfernte Repositories ermöglichen es Entwicklern, ihre Änderungen zu teilen, ihre Bemühungen zu synchronisieren und die Projektgeschichte zu pflegen. Außerdem dient das entfernte Repository als Integrationsstelle für Automatisierungsprozesse wie Build, Testen und Deployment von Anwendungen.
2. Lokales Repository:
Ein lokales Repository ist deine persönliche Kopie des Codes, die auf deinem Computer gespeichert ist. In diesem Repository kannst du alle Git-Operationen (Commits, Branching, Merging) ohne Internetverbindung durchführen.
Lokale Repositories ermöglichen es Entwicklern, isoliert von Kollegen zu arbeiten, zu experimentieren, neue Funktionen zu erstellen oder Fehler zu beheben, bevor Änderungen zusammengeführt (gemerged) und zum entfernten Repository gesendet werden.
3. Arbeitsverzeichnis:
Das Arbeitsverzeichnis auf deinem Computer enthält die aktuellen Dateien des Projekts, an denen du gerade arbeitest. Hier kannst du Dateien anzeigen und ändern, neue Funktionalitäten hinzufügen oder Fehler beheben.
Nach dem Anbringen von Änderungen kannst du sie zum Index (Staging Area) hinzufügen und dann im lokalen Repository fixieren. Das Arbeitsverzeichnis ist mit dem aktuellen Branch in deinem Repository verbunden und das Ändern von Branches ändert den Inhalt des Arbeitsverzeichnisses.
Diese Komponenten bieten gemeinsam eine leistungsstarke Infrastruktur zur Verwaltung von Quellcode, wodurch Entwickler die Projektgeschichte verwalten, zusammenarbeiten und die Verantwortung für den Code teilen können.
9.4 GitHub ist das beliebteste kostenlose Repository
GitHub — ist die führende Web-Plattform für das Hosting von Quellcode, die das Versionskontrollsystem Git verwendet. Gegründet im Jahr 2008, wurde es schnell zu einem der wichtigsten Werkzeuge für Entwickler weltweit.
GitHub ermöglicht es Benutzern, Repositories zur Verwaltung von Projekten zu erstellen, Änderungen im Code zu kontrollieren und nachzuverfolgen, mit anderen Entwicklern zusammenzuarbeiten und offen oder privat zu entwickeln. Es bietet Funktionen wie Forks, Branches, Pull-Requests und Merges, die es Entwicklern ermöglichen, leicht an Projekten zusammenzuarbeiten.
GitHub enthält auch Funktionen zur Problemverfolgung, Anfragen zu Funktionen, Aufgabenverwaltung und Wikis für jedes Projekt. Die Plattform integriert sich mit zahlreichen Tools und Diensten und bietet umfangreiche Möglichkeiten zur Automatisierung der Entwicklung, Test und Deployment von Anwendungen.
GitHub unterstützt eine umfangreiche Entwickler-Community, in der aktiv über Best Practices in der Programmierung, im Projektmanagement und vieles mehr diskutiert wird. Das macht es nicht nur zu einem Werkzeug zur Projektverwaltung, sondern auch zu einem Zentrum der Community, in dem Entwickler Wissen und Erfahrungen austauschen können.
9.5 Anmeldung auf GitHub
Schritt 1. Gehe zu 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 ein und konfiguriere seine Einstellungen.
Schritt 5. Füge dem Projekt eine README-Datei hinzu – die werden wir später noch benötigen.
Schritt 6. Klicke auf "Create repository".
GO TO FULL VERSION