Testen Sie Ihre Fähigkeiten mit unseren Hosting-Diensten und erhalten Sie 15% Rabatt!

Code an der Kasse verwenden:

Skills
15.01.2025

Struktur des Git-Repositorys

Master-Git-Repository-Struktur auf Ihrem AlexHost VPS

Warum Git auf AlexHost verwenden? Git ist ein Eckpfeiler der Versionskontrolle, und das Hosting Ihrer Repositorys auf einem AlexHost VPS gibt Ihnen die volle Kontrolle mit Root-Zugriff, ultraschnellem NVMe-Speicher und sicheren DDoS-geschützten Umgebungen. Egal, ob Sie ein Einzelentwickler sind oder ein Team leiten, der flexible VPS von AlexHost stellt sicher, dass Ihre Git-Workflows reibungslos ablaufen. In diesem Leitfaden wird die Struktur eines Git-Repositorys erläutert und wie Sie es auf Ihrem AlexHost-Server nutzen können.


1. Arbeitsverzeichnis

Das Arbeitsverzeichnis ist der Ort, an dem sich die eigentlichen Dateien in Ihrem Projekt befinden. Wenn Sie ein Git-Repository klonen, erhalten Sie eine Kopie aller getrackten Dateien, die in Ihrem Arbeitsverzeichnis abgelegt werden. Dies ist der Bereich, in dem Sie Dateien aktiv bearbeiten, Änderungen vornehmen und neue Inhalte hinzufügen

  • Geänderte Dateien: Jede Datei, die Sie in Ihrem Arbeitsverzeichnis bearbeiten, gilt so lange als geändert, bis Sie sie zurücksetzen oder die Änderungen rückgängig machen.
  • Unverfolgte Dateien: Dateien, die noch nicht von Git nachverfolgt werden, erscheinen im Arbeitsverzeichnis als nicht nachverfolgt, bis sie bereitgestellt und übertragen werden.

2. Bereitstellungsbereich (Index)

Der Staging-Bereich (auch Index genannt) ist ein Zwischenbereich, in dem Änderungen an Dateien gesammelt werden, bevor sie in das Repository übertragen werden. Sie fügen Dateien oder Änderungen mit dem Befehl git add zum Staging-Bereich hinzu. Die Änderungen im Staging-Bereich werden bei der nächsten Übertragung berücksichtigt

  • Hinzufügen von Änderungen zum Staging-Bereich
    git add <Datei>
  • Anzeigen des Staging-Bereichs: Mit git status können Sie sehen, was sich in der Staging Area befindet.

3. Git-Verzeichnis (.git-Ordner)

Das Git-Verzeichnis, das im Ordner .git gespeichert ist, ist das Herzstück eines jeden Git-Repositorys. Es enthält alle wichtigen Informationen über den Verlauf, die Konfiguration und den aktuellen Zustand Ihres Projekts. Dieses Verzeichnis wird automatisch erstellt, wenn Sie ein Git-Repository initialisieren oder klonen

Hauptkomponenten des .git-Verzeichnisses:

  • HEAD: Eine Datei, die auf die aktuelle Übertragung in Ihrem Zweig verweist.
  • Zweige: Enthält Informationen über die Zweige des Repositorys.
  • Objekte: Speichert alle Objekte wie Commits, Blobs (Dateidaten) und Bäume (Verzeichnisstruktur).
  • Refs: Enthält Verweise auf Commits, einschließlich Heads (Zweige), Tags und Zweige mit Remote-Tracking.
  • Konfig: Die Konfigurationsdatei für Ihr lokales Repository, in der Einstellungen wie Remotes oder Benutzerinformationen gespeichert werden.
  • Protokolle: Speichert Protokolle für alle Aktivitäten wie Commits, Checkouts und Rebases.
  • Hooks: Benutzerdefinierte Skripte, die vor oder nach bestimmten Git-Ereignissen (z. B. Commit, Push) Aktionen auslösen können.

4. Commit-Verlauf

Jeder Commit ist ein Snapshot Ihres Repositorys zu einem bestimmten Zeitpunkt. Ein Commit enthält Änderungen an Dateien zusammen mit Metadaten wie der Commit-Nachricht, dem Autor und dem Zeitstempel. Die Commits bilden die Historie Ihres Projekts

  • Commits werden im Verzeichnis .git/objects gespeichert.
  • Jeder Commit verweist auf den vorherigen Commit (mit Ausnahme des ersten) und bildet eine verknüpfte Kette, die als Projektverlauf visualisiert werden kann.
git log # Die Commit-Historie anzeigen

5. Verzweigungen

Ein Branch ist ein Verweis auf einen bestimmten Commit, der es Ihnen ermöglicht, gleichzeitig an verschiedenen Versionen Ihres Projekts zu arbeiten. Git beginnt standardmäßig mit einem Zweig namens main (oder master in älteren Versionen)

  • Zweig-Zeiger: Zweige sind einfach Zeiger auf einen Commit. Das Anlegen eines neuen Zweigs bedeutet, dass ein Zeiger auf den aktuellen Commit angelegt wird, so dass Sie neue Commits in diesem Zweig vornehmen können, ohne dass andere Zweige davon betroffen sind.
git branch <branch-name> # Erzeugt einen neuen Zweig git checkout <branch-name> # Wechselt zu einem bestehenden Zweig
  • HEAD: Der HEAD-Zeiger in Git zeigt den aktuellen Zweig oder die aktuelle Übertragung an, an der Sie arbeiten. Normalerweise verweist er auf die letzte Übertragung in Ihrem aktuellen Zweig.

6. Tags

Tags sind Verweise auf bestimmte Punkte in der Git-Historie, die häufig zur Kennzeichnung von Release-Versionen verwendet werden (z. B. v1.0, v2.0). Im Gegensatz zu Zweigen werden Tags nicht mit neuen Commits aktualisiert

  • Leichte Tags: Dies sind einfache Verweise auf einen Commit, ähnlich wie bei einem Branch.
  • Beschriftete Tags: Enthalten zusätzliche Metadaten, wie den Namen des Taggers, das Datum und eine Tag-Nachricht.
git tag v1.0 # Erstellen eines leichtgewichtigen Tags git tag -a v1.0 -m “Version 1.0” # Erstellen eines kommentierten Tags

7. Fernbedienungen

Ein Remote in Git ist ein Verweis auf eine Kopie Ihres Repositorys, die an einem anderen Ort gehostet wird, häufig auf Plattformen wie GitHub, GitLab oder Bitbucket. Remotes werden für die Zusammenarbeit verwendet und ermöglichen es Ihnen, Änderungen an andere Kopien des Repositorys zu senden oder von dort zu beziehen

  • Ursprung: Standardmäßig wird das primäre Remote-Repository als Ursprung bezeichnet.
git remote add origin <url> # Hinzufügen eines entfernten Repositorys git fetch origin # Abrufen von Änderungen aus dem entfernten Repository git push origin main # Verschieben von Änderungen in den entfernten Hauptzweig

8. Objekte in Git

Das Git-Objektverzeichnis (.git/objects) enthält die vier primären Objekttypen, aus denen der Verlauf des Repositorys besteht

  • Blob: Speichert den eigentlichen Inhalt einer Datei.
  • Baum: Stellt ein Verzeichnis dar und ordnet die Dateinamen den Blob-Objekten und Unterverzeichnissen (anderen Baumobjekten) zu.
  • Übertragen: Speichert Metadaten über jede Änderung (Autor, Datum, Nachricht) und verweist auf ein Baumobjekt.
  • Tag: Verweist auf einen Commit und speichert Informationen über den Tagger und die Nachricht (im Falle von kommentierten Tags).

9. Hooks

Mit Git können Sie benutzerdefinierte Skripte (Hooks) definieren, die in verschiedenen Phasen des Git-Workflows ausgelöst werden können. Diese Skripte können automatisch nach oder vor Ereignissen wie dem Commit, Push oder Merge ausgeführt werden. Hooks können die Codequalität verbessern, Tests ausführen oder CI/CD-Pipelines anstoßen. Hooks werden im Verzeichnis .git/hooks/ gespeichert

  • Pre-Commit-Hook: Wird ausgeführt, bevor ein Commit erstellt wird.
  • Post-commit-Hook: Wird ausgeführt, nachdem ein Commit erstellt wurde.

10. Protokolle

Git speichert Protokolle aller Aktionen im Repository, wie Commits, Checkouts, Merges und Reverts. Diese Protokolle helfen bei der Fehlersuche und der Überprüfung der im Repository durchgeführten Aktionen

  • Git Reflog: Zeichnet alle Änderungen am HEAD-Zeiger auf, so dass Sie sich von Aktionen wie dem Zurücksetzen eines Zweigs erholen können.
git reflog # Das Reflog anzeigen, um die letzten Aktionen zu sehen

Zusammenfassung der Struktur des Git-Repositorys

  • Arbeitsverzeichnis: Enthält Dateien und Verzeichnisse in ihrem aktuellen Zustand.
  • Staging-Bereich (Index): Hier werden die Änderungen vor dem Übertragen bereitgestellt.
  • Git-Verzeichnis (.git): Enthält die Kerndaten, einschließlich Objekten, Konfiguration und Protokollen.
  • Übertragungen: Aufzeichnung von Änderungen mit Metadaten, die den Verlauf des Projekts bilden.
  • Verzweigungen: Zeiger auf bestimmte Commits, die eine parallele Entwicklung ermöglichen.
  • Tags: Benannte Verweise auf bestimmte Commits, in der Regel zur Kennzeichnung von Releases.
  • Remotes: Verweise auf Repositories, die anderswo für die Zusammenarbeit gehostet werden.
  • Objekte: Die Kernkomponenten von Git, darunter Blobs, Bäume und Commits.

Wenn Sie diese Struktur verstehen, können Sie Ihr Git-Repository effektiv navigieren und verwalten und eine reibungslose Zusammenarbeit und Versionskontrolle während der gesamten Projektentwicklung sicherstellen.

Testen Sie Ihre Fähigkeiten mit unseren Hosting-Diensten und erhalten Sie 15% Rabatt!

Code an der Kasse verwenden:

Skills