Close

git init

Auf dieser Seite beschäftigen wir uns ausführlich mit dem Befehl git init. Am Ende dieser Seite wirst du über die wichtigsten und die erweiterten Funktionen von git init Bescheid wissen. Dazu zählt Folgendes:

  • Optionen und Nutzung vongit init
  • Überblick über das .git-Verzeichnis
  • Individuelle Werte für die git init-Verzeichnisumgebung
  • git init im Vergleich mit git clone
  • git init-Bare-Repositorys
  • git init-Vorlagen

Mit dem Befehl git init wird ein neues Git-Repository erstellt. Er kann zur Konvertierung eines bestehenden, nicht versionierten Projekts in ein Git-Repository oder zum Initialisieren eines neuen, leeren Repositorys genutzt werden. Die meisten anderen Git-Befehle sind außerhalb eines initialisierten Repositorys nicht verfügbar. git init ist also normalerweise der erste Befehl, der in einem neuen Projekt ausgeführt wird.

git init erstellt ein .git-Unterverzeichnis im aktuellen Arbeitsverzeichnis, das alle erforderlichen Git-Metadaten für das neue Repository enthält. Diese Metadaten enthalten alle Unterverzeichnisse für Objekte, Referenzen und Vorlagendateien. Außerdem wird eine HEAD-Datei erstellt, die auf den aktuell ausgecheckten Commit verweist.

Abgesehen vom .git-Verzeichnis bleibt ein bestehendes Projekt im Root-Verzeichnis des Projekts unverändert (im Gegensatz zu SVN benötigt Git nicht in jedem Unterverzeichnis ein .git-Unterverzeichnis).

Standardmäßig wird mit git init die Git-Konfiguration auf den Pfad des .git-Unterverzeichnisses initialisiert. Du kannst den Pfad des Unterverzeichnisses ändern und anpassen, wenn du einen anderen Speicherort bevorzugst. Du kannst für die Umgebungsvariable $GIT_DIR einen eigenen Pfad festlegen und mit git init werden die Git-Konfigurationsdateien hier initialisiert. Zum selben Zweck kannst du das Argument --separate-git-dir übergeben. Häufig verwendet man ein separates .git- Unterverzeichnis, damit Punktdateien zur Systemkonfiguration (.bashrc, .vimrc usw.) im Hauptverzeichnis verbleiben, während der .git-Ordner an einem anderen Speicherort aufbewahrt wird.

git branch
Zugehöriges Material

git branch

Bitbucket-Logo
Lösung anzeigen

Git kennenlernen mit Bitbucket Cloud

Anwendung von "git rebase"


Im Vergleich zu SVN ist es mit dem Befehl git init unglaublich einfach, neue versionskontrollierte Projekte zu erstellen. In Git muss du nicht erst ein Repository erstellen, Dateien importieren und eine Arbeitskopie auschecken. Außerdem sind bei Git auch kein bereits vorhandener Server oder Administratorrechte erforderlich. Du musst lediglich mit "cd" in dein Projekt-Unterverzeichnis wechseln und git init ausführen, um ein voll funktionsfähiges Git-Repository zu erhalten.

git init

Wandle das aktuelle Verzeichnis in ein Git-Repository um. Dem aktuellen Verzeichnis wird dann ein .git-Unterverzeichnis hinzugefügt und du kannst mit dem Erfassen von Projektrevisionen beginnen.

git init <directory>

Erstelle im angegebenen Verzeichnis ein leeres Git-Repository. Wenn du diesen Befehl ausführst, wird ein neues Unterverzeichnis mit dem Namen <directory> erstellt, das nichts enthält außer dem .git- Unterverzeichnis.

Wenn du git init bereits für ein Projektverzeichnis ausgeführt hast und es dort das Unterverzeichnis .git gibt, kannst du git init problemlos auf dasselbe Projektverzeichnis anwenden. Eine vorhandene .git-Konfiguration wird dabei nicht überschrieben.

git init vs. git clone

Eine kurze Anmerkung: git init und git clone werden leicht verwechselt. Im Prinzip können beide zur Initialisierung eines neuen Git-Repositorys genutzt werden. Doch git clone ist abhängig von git init. Mit git clone erstellst du eine Kopie eines bestehenden Repositorys. Intern ruft git clone zuerst git init auf, um ein neues Repository zu erstellen. Daraufhin werden die Daten vom bestehenden Repository kopiert und ein neuer Satz Arbeitsdateien wird ausgecheckt. Mehr dazu erfährst du auf der Seite zu git clone.

Bare-Repositorys: git init --bare


git init --bare <directory>

Lege ein leeres Git-Repository ohne Arbeitsverzeichnis. Gemeinsame Repositorys sollten immer mit --bare erstellt werden (siehe Ausführungen unten). Üblicherweise enden Repositorys, die mit dem Zusatz --bare initialisiert wurden, mit .git. Wenn die leere Version eines Repositorys z. B. mein-projekt heißt, sollte sie in einem Verzeichnis namens mein-projekt.git gespeichert sein.

Mit dem Flag --bare erstellst du ein Repository ohne Arbeitsverzeichnis, in dem du Dateien bearbeiten und Änderungen committen kannst. Der Zweck eines Bare-Repositorys ist es, Code dorthin zu pushen und daraus zu pullen. Man sollte Commits jedoch nie mit diesem Repository als direktem Ziel durchführen. Zentrale Repositorys sollten immer als Bare-Repositorys erstellt werden, da Änderungen womöglich überschrieben werden, wenn Branches zu einem Repository gepusht werden, das kein Bare-Repository ist. Im Grunde genommen kennzeichnest du mit --bare ein Repository als eine Art Speicher, statt es als Entwicklungsumgebung im eigentlichen Sinne zu nutzen. Daher ist das zentrale Repository für nahezu alle Git-Workflows ein Bare-Repository. Die lokalen Repositorys der Entwickler hingegen sind keine Bare-Repositorys.

Bare-Repositorys

Am häufigsten verwendet man git init --bare, um ein zentrales Remote-Repository zu erstellen:

ssh <user>@<host> cd path/above/repo git init --bare my-project.git

Zuerst meldest du dich per SSH am Server an, der dein zentrales Repository enthalten soll. Dann navigierst du an den Ort, an dem du das Projekt speichern möchtest. Zum Schluss nutzt du die Option --bare, um ein zentrales Repository zum Speichern anzulegen. Die Entwickler klonen dann my-project.git von dort aus, um lokale Kopien auf ihre Entwicklungsrechner zu ziehen.

"git init"-Vorlagen


git init <directory> --template=<template_directory>

Mit diesem Befehl werden ein neues Git-Repository angelegt und die Dateien aus dem <template_directory> in das Repository kopiert.

Mithilfe von Vorlagen kannst du ein neues Repository mit einem vordefinierten .git-Unterverzeichnis erstellen. Eine Vorlage kannst du so konfigurieren, dass sie Standardverzeichnisse und -dateien enthält, die in das .git-Unterverzeichnis eines neuen Repositorys kopiert werden. Die Git-Standardvorlage befindet sich normalerweise im Verzeichnis /usr/share/git-core/templates, kann auf deinem Rechner aber unter einem anderen Pfad liegen.

Standardvorlagen bieten eine gute Orientierung und zeigen dir, wie du Funktionen von Vorlagen einsetzen kannst. Eine sehr hilfreiche Funktion, die du in den Standardvorlagen findest, ist die Hook-Konfiguration in Git. Du kannst eine Vorlage mit vordefinierten Git-Hooks erstellen und häufig verwendete Hooks direkt beim Anlegen deiner neuen Git-Repositorys anwenden. Mehr zu Git-Hooks erfährst du auf der Seite über Git-Hooks.

Konfiguration


git init <directory> --template=<template_directory>

Alle Konfigurationen von git init erfordern ein <directory>-Argument. Wenn du das angibst, wird der Befehl in diesem Verzeichnis ausgeführt. Wenn es dieses Verzeichnis noch nicht gibt, wird es erstellt. Neben den Optionen und Konfigurationen, die wir bereits besprochen haben, bietet git init noch ein paar weitere Befehlszeilenoptionen. Hier ist eine vollständige Liste dieser Optionen:

-Q

--QUIET

Es werden nur kritische Nachrichten, Fehler und Warnungen ausgegeben. Sonstiger Output wird unterdrückt.

--BARE

Erstellt ein Bitbucket-Repository (siehe Abschnitt "Bare-Repositorys" oben)

--TEMPLATE=

Gibt das Verzeichnis an, aus dem die genutzten Vorlagen stammen. (Siehe oben den Abschnitt zu den Git init-Vorlagen).

--SEPARATE-GIT-DIR=

Erstellt eine Textdatei mit dem Pfad zu . Diese Datei fungiert als Verknüpfung zum .git-Verzeichnis. Dies ist hilfreich, wenn du dein .git-Verzeichnis an einem von den Arbeitsdateien deines Projekts separaten Ort oder Laufwerk speichern möchtest. Gebräuchliche Anwendungsfälle für --separate-git-dir sind z. B.:

  • Deine Systemkonfigurationsdateien, die mit einem Punkt beginnen (.bashrc, .vimrc etc.), verbleiben im Hauptverzeichnis, während sich der .git-Ordner an einem anderen Speicherort befindet.
  • Dein Git-Verlauf hat mittlerweile sehr viel Festplattenspeicher belegt und du musst ihn auf ein anderes Laufwerk mit hoher Kapazität verschieben.
  • Das Git-Projekt solltest du in einem öffentlich zugänglichen Verzeichnis wie www:root ablegen.

Du kannst git init --separate-git-dir für ein bestehendes Repository aufrufen und das Verzeichnis .git dir wird zum angegebenen Pfad verschoben.

--SHARED[=(FALSE|TRUE|UMASK|GROUP|ALL|WORLD|EVERYBODY|0XXX)]

Lege Zugriffsrechte für das neue Repository fest. Hierdurch wird bestimmt, welche Benutzer und Gruppen, die Zugriffsrechte auf Unix-Ebene haben, Pushes zum und Pulls vom Repository durchführen dürfen.

Beispiele


Ein neues Git-Repository für eine vorhandene Codebasis erstellen

cd /path/to/code \ 
git init \ 
git add . \ 
git commit

Erstellen eines neuen Bare-Repositorys

git init --bare /path/to/repo.git

Eine "git init"-Vorlage erstellen und ein neues Git-Repository mithilfe der Vorlage anlegen

mkdir -p /path/to/template \ 
echo "Hello World" >> /absolute/path/to/template/README \
git init /new/repo/path --template=/absolute/path/to/template \ 
cd /new/repo/path \ 
cat /new/repo/path/README

Diesen Artikel teilen
Nächstes Thema

Lesenswert

Füge diese Ressourcen deinen Lesezeichen hinzu, um mehr über DevOps-Teams und fortlaufende Updates zu DevOps bei Atlassian zu erfahren.

Mitarbeiter arbeiten mit unzähligen Tools zusammen

Bitbucket-Blog

Abbildung: DevOps

DevOps-Lernpfad

Demo Den: Feature-Demos mit Atlassian-Experten

So funktioniert Bitbucket Cloud mit Atlassian Open DevOps

Melde dich für unseren DevOps-Newsletter an

Thank you for signing up