Von Gast (nicht überprüft) , 29 April 2026

Übersicht

git init [--bare] [--initial-branch=<name>] [--template=<dir>] [directory]

Beschreibung

Der git init-Befehl erstellt ein neues, leeres Git-Repository oder reinitialisiert ein bestehendes. Es ist üblicherweise der erste Befehl, den Sie ausführen, wenn Sie ein Projekt mit Git zu verfolgen beginnen wollen. Der Befehl erstellt ein verstecktes .git-Verzeichnis, das alle Metadaten enthält, die Git braucht: die Objektdatenbank, Referenzen, Konfiguration, Hooks und den Index. Ohne dieses Verzeichnis hat Git keinen Ort, um Historie zu speichern.

Das Ausführen von git init in einem bestehenden Repository ist sicher — es überschreibt keine vorhandenen Objekte oder Refs. Stattdessen reinitialisiert es Templates und stellt sicher, dass die Verzeichnisstruktur intakt ist. Standardmäßig erstellt modernes Git ein Repository mit dem durch init.defaultBranch konfigurierten Branch-Namen, üblicherweise main auf neuen Installationen.

Über das Standardverhalten hinaus respektiert git init die Einstellung core.hooksPath, falls Sie ein zentrales Hooks-Verzeichnis pflegen, sowie die init.templateDir-Konfiguration, um eigene Hooks und Exclude-Dateien in jedes neue Repository zu kopieren. Auf Dateisystemen, bei denen Groß-/Kleinschreibung zählt, wird core.ignoreCase automatisch auf Basis der Erkennung zur Init-Zeit gesetzt. Teams, die häufig neue Services bootstrappen, scripten oft die Schritte nach dem Init: Standard-Branch setzen, Lizenzdatei hinzufügen, gitignore-Template konfigurieren und einen Remote einrichten — alles unmittelbar nach dem Ausführen von git init. Zu verstehen, welche Dateien .git/ enthält (HEAD, config, objects/, refs/, hooks/), entmystifiziert spätere Operationen und macht die Wiederherstellung nach Unfällen viel einfacher.

Im täglichen Einsatz integriert sich git init eng mit Shell-Aliasen, Editor-Plugins und Continuous Integration. Power-User fügen oft Aliase hinzu, die Flags kombinieren, die sie immer übergeben, oder wickeln den Befehl in Skripte, die Teamkonventionen durchsetzen. Die Ausgabeformatierung kann über Git-Config angepasst werden — Pretty-Formate, Farbschemata und Pager-Verhalten sind alle einstellbar. Wenn etwas schiefgeht, ist der erste Diagnoseschritt üblicherweise, den Befehl erneut mit GIT_TRACE=1 in der Umgebung auszuführen, was die zugrunde liegenden Plumbing-Aufrufe offenlegt. Für ungewöhnliche Situationen öffnet die --help-Ausgabe (git init --help) die vollständige Manpage mit Details zu jeder Option, einschließlich solcher, die in alltäglichen Workflows selten verwendet werden, aber für Debugging oder Skripting im großen Maßstab essentiell sind.

Zu verstehen, wie git init mit dem Rest von Gits Datenmodell interagiert — der Objektdatenbank, dem Index, Refs und dem Working Tree — zahlt sich aus. Jeder Befehl operiert auf einer Teilmenge dieser Stücke, und zu wissen, welche er berührt, hilft Ergebnisse vorherzusagen und sich von Fehlern zu erholen. Das Lesen der offiziellen Git-Dokumentation neben praktischer Übung in einem Wegwerf-Repository ist der schnellste Weg, die Nuancen zu verinnerlichen. Die meisten Produktionsprobleme mit Git rühren von einer von drei Ursachen: überraschendem Standardverhalten, partiellen Netzwerkoperationen oder dem Umschreiben bereits geteilter Historie. Ein funktionierendes mentales Modell der Nebenwirkungen von git init hilft, alle drei zu vermeiden.

Häufige Optionen

OptionBeschreibung
--bareErstellt ein Bare-Repository ohne Working Tree, geeignet zum Hosten auf einem Server.
--initial-branch=<name> / -bSetzt den Namen des initialen Branches (Standard main).
--template=<dir>Verwendet ein benutzerdefiniertes Template-Verzeichnis für Hooks und Konfiguration.
--shared[=<perms>]Erlaubt es, dass das Repository von einer Unix-Gruppe geteilt wird.
--separate-git-dir=<dir>Speichert die tatsächlichen Git-Daten in einem separaten Verzeichnis und hinterlässt eine .git-Datei, die darauf zeigt.
-q, --quietUnterdrückt informative Ausgabe.

Beispiele

git init
    # Initialisiert ein Repository im aktuellen Verzeichnis

    git init my-project
    # Erstellt ein neues Verzeichnis und initialisiert ein Repo darin

    git init --bare /srv/git/myproject.git
    # Erstellt ein Bare-Repository für das Hosten auf einem Server

    git init -b trunk
    # Initialisiert mit dem initialen Branch-Namen "trunk" statt "main"

Häufige Fehler

Ein häufiger Fehler ist das versehentliche Ausführen von git init in Ihrem Home-Verzeichnis, was Ihren gesamten Home-Ordner in ein Repository verwandelt. Prüfen Sie immer Ihr aktuelles Verzeichnis, bevor Sie es ausführen. Eine weitere Falle ist das Initialisieren eines Repos im Working Tree eines bestehenden Repos — das erzeugt verschachtelte Repositories, die Tools und Menschen gleichermaßen verwirren können. Falls Sie versehentlich ein unerwünschtes Repo erstellt haben, entfernen Sie einfach das .git-Verzeichnis, um es rückgängig zu machen.

Verwandte Befehle

git clone, git config, git remote