W3docs

Git Repository

Git-Repository erklärt: Initialisieren mit git init, klonen mit git clone, Änderungen speichern und pushen.

Was ist ein Git Repository?

Ein Git Repository ist der Speicherort für Ihre Projektdateien zusammen mit der vollständigen Historie aller jemals daran vorgenommenen Änderungen. Es ermöglicht Ihnen, Versionen Ihres Codes zu speichern (Commits), zwischen diesen Versionen zu wechseln und mit anderen zusammenzuarbeiten, ohne Arbeit zu verlieren.

Diese Seite behandelt den gesamten Lebenszyklus eines Repositorys: das Erstellen, das Vornehmen und Speichern von Änderungen, die Verbindung zu einem Remote-Repository und das Teilen Ihrer Arbeit. Jeder Schritt verweist auf ein eigenes Kapitel, in dem Sie tiefer einsteigen können.

GitRepository

Das .git-Verzeichnis

Alles, was einen Ordner zu einem Repository macht, befindet sich in einem einzigen versteckten Unterverzeichnis namens .git im Projektstamm. Es enthält Ihre Commit-Historie, Branches, Tags, Konfiguration und den Staging-Bereich. Löschen Sie .git, bleiben Ihnen nur einfache Dateien – die Versionshistorie ist verloren. Kopieren Sie .git zusammen mit den Dateien, haben Sie das gesamte Repository kopiert.

Lokale vs. Remote-Repositories

Git ist ein verteiltes Versionskontrollsystem, daher gibt es zwei Arten von Repositorys, mit denen Sie arbeiten werden:

  • Ein lokales Repository befindet sich auf Ihrem eigenen Rechner. Sie committen darin, erstellen darin Branches und inspizieren seine Historie offline – kein Netzwerk erforderlich.
  • Ein Remote-Repository befindet sich auf einem Server (zum Beispiel GitHub oder Bitbucket). Es ist die gemeinsame Kopie, auf die Ihr Team pusht und von der es pullt.

Ein typischer Arbeitsablauf bearbeitet Dateien lokal, erfasst sie als Commits und synchronisiert diese Commits anschließend mit dem Remote-Repository.

Git Init zum Initialisieren eines neuen Repositorys

Verwenden Sie den Befehl git init, um einen bestehenden Ordner in ein Repository umzuwandeln. Sie führen ihn einmalig aus, wenn das Projekt noch keine Versionskontrolle hat.

git init

git init

Wenn Sie dies in Ihrem Projektordner ausführen, wird das versteckte .git-Unterverzeichnis erstellt und es wird etwa folgendes ausgegeben:

Initialized empty Git repository in /path/of/project/.git/

Sie können das Repository auch in einem eigens benannten Ordner in einem einzigen Schritt erstellen, indem Sie ein Verzeichnis übergeben:

git init directory

git init <directory>

Dies erstellt den Ordner (falls er nicht existiert) und initialisiert darin ein leeres Git Repository. Noch zeigt kein Branch auf einen Commit; der Standard-Branch (üblicherweise main oder master, abhängig von Ihrer Git-Version und Konfiguration) existiert erst nach Ihrem ersten Commit.

Git Clone zum Klonen eines bestehenden Repositorys

Wenn das Projekt bereits auf einem Remote-Server vorhanden ist, führen Sie kein git init aus. Verwenden Sie stattdessen git clone, um es auf Ihren Rechner zu kopieren. Dies ist ebenfalls ein einmaliger Vorgang pro Projekt.

git clone repo url

git clone <repo url>

Das Klonen lädt die vollständige Historie und die Arbeitsdateien herunter und konfiguriert – anders als git init – die Quelle automatisch als Remote mit dem Namen origin. Das bedeutet, Sie können sofort git push und git pull ausführen, ohne zusätzliche Einrichtung.

Git Add und Git Commit zum Speichern von Änderungen im Repository

Das Speichern einer Änderung ist in Git ein zweistufiger Prozess. Zunächst verschiebt git add Änderungen in den Staging-Bereich (auch Index genannt) – eine Wartezone, in der Sie genau auswählen, was in den nächsten Snapshot aufgenommen wird. Dann zeichnet git commit diesen gestuften Inhalt als dauerhaften Punkt in der Historie auf. Die Aufteilung des Vorgangs erlaubt es Ihnen, jeweils nur einen Teil Ihrer Änderungen zu committen.

Der folgende Ablauf erstellt eine Datei, überprüft ihren Status, stellt sie bereit und committet sie:

  • Wechseln Sie in das Verzeichnis /path/of/project
  • Erstellen Sie eine neue Datei GitCommit.txt mit dem Inhalt "commit example for git repo"
  • Führen Sie git status aus, um zu bestätigen, dass die neue Datei unverfolgt ist
  • Führen Sie git add GitCommit.txt aus, um sie in den Staging-Bereich zu verschieben
  • Führen Sie git commit mit einer Nachricht aus, die die geleistete Arbeit beschreibt

git add and git commit

cd /path/of/project
echo "commit example for git repo" >> GitCommit.txt
git status
git add GitCommit.txt
git commit -m "added GitCommit.txt to the repo"

Führen Sie git status jederzeit aus, um zu sehen, welche Dateien unverfolgt, im Staging-Bereich oder geändert sind. Nur Dateien, die Sie explizit mit git add hinzugefügt haben, werden in den nächsten Commit aufgenommen. Um Build-Ausgaben, Geheimnisse oder Abhängigkeiten vollständig aus dem Repository herauszuhalten, listen Sie diese in einer .gitignore-Datei auf.

Git Remote Add zum Verbinden mit einem Remote-Repository

Wenn Sie das Repository mit git init erstellt haben, hat es noch kein Remote. Fügen Sie eines mit dem Befehl git remote hinzu. Konventionsgemäß wird das primäre Remote origin genannt:

git remote add

git remote add origin <remote_repo_url>

Überprüfen Sie, ob das Remote registriert wurde, bevor Sie pushen:

git remote -v

Dies gibt die Fetch- und Push-URLs für jedes konfigurierte Remote aus, zum Beispiel:

origin  https://github.com/user/repo.git (fetch)
origin  https://github.com/user/repo.git (push)

(Repositorys, die mit git clone erstellt wurden, haben origin bereits gesetzt, sodass Sie diesen Schritt überspringen können.)

Git Push für die Interaktion mit dem Repository

Wenn Sie git clone verwendet haben, ist bereits ein Remote-Repository konfiguriert, sodass Sie git push ausführen können, um Ihre Änderungen zu pushen. Wenn Sie git init verwendet haben, müssen Sie zuerst ein Remote-Repository hinzufügen (siehe oben). Sie können einen gehosteten Git-Dienst wie GitHub oder Bitbucket verwenden, dort ein Repository erstellen und die bereitgestellte URL verwenden, um Ihr lokales Projekt zu verbinden.

Nachdem Sie das Remote hinzugefügt haben, können Sie lokale Branches dorthin pushen:

git push

git push -u origin main

Die Option -u (kurz für --set-upstream) bewirkt zweierlei: Sie pusht Ihre Änderungen und verknüpft Ihren lokalen Branch mit dem Remote-Branch. Sobald diese Verknüpfung eingerichtet ist, können Sie einfach git push und git pull ausführen, ohne jedes Mal das Remote oder den Branch benennen zu müssen.

Git Config für Konfiguration und Einrichtung

Vor Ihrem ersten Commit muss Git wissen, wer Sie sind. Der Befehl git config setzt Optionen, die Benutzeridentität, Einstellungen und das Repository-Verhalten steuern. Die Einstellungen befinden sich auf drei Ebenen, wobei jede die übergeordnetere überschreibt.

Verwenden Sie das Flag --global, um Optionen für den aktuellen Benutzer zu setzen. Diese gelten für jedes Repository, das Ihnen gehört, was der richtige Geltungsbereich für Ihren Namen und Ihre E-Mail-Adresse ist:

git repository, git config global user.name

git config --global user.name <name>
git config --global user.email <email>

Verwenden Sie --local (der Standard, wenn Sie kein Geltungsbereichs-Flag angeben), um eine Option nur für das aktuelle Repository zu setzen. Dies ist praktisch, wenn ein Projekt eine andere Identität als Ihren globalen Standard benötigt:

git repository, git config local user.email

git config --local user.email <email>

Verwenden Sie --system, um die Konfiguration für jeden Benutzer und jedes Repository auf dem Rechner zu setzen – zum Beispiel einen gemeinsamen Standard-Editor:

git config system editor

git config --system core.editor <editor>

Wenn derselbe Schlüssel auf mehr als einer Ebene gesetzt ist, gewinnt local gegenüber global, und global gewinnt gegenüber system, sodass ein Repository-spezifischer Wert immer Vorrang hat.

Alles zusammenführen

Für ein brandneues Projekt, das Sie teilen möchten, lautet die vollständige Sequenz:

git init
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
echo "# My Project" >> README.md
git add README.md
git commit -m "Initial commit"
git remote add origin <remote_repo_url>
git push -u origin main

Wenn das Projekt stattdessen bereits auf einem Remote vorhanden ist, überspringen Sie git init und git remote addgit clone <repo url> liefert Ihnen in einem einzigen Befehl ein gebrauchsfertiges Repository.

Von hier aus können Sie die einzelnen Befehle vertiefen: git add und git commit zum Speichern von Arbeit, git status zum Inspizieren und git push / git pull zum Synchronisieren mit dem Remote.

Übung

Übung
Was sind die wichtigsten Aspekte und Operationen in Bezug auf ein Git Repository?
Was sind die wichtigsten Aspekte und Operationen in Bezug auf ein Git Repository?
Was this page helpful?