English ▾ Themen ▾ Neueste Version ▾ git-init zuletzt aktualisiert in 2.52.0

NAME

git-init - Ein leeres Git-Repository erstellen oder ein bestehendes neu initialisieren

SYNOPSIS

git init [-q | --quiet] [--bare] [--template=<template-directory>]
	 [--separate-git-dir <git-dir>] [--object-format=<format>]
	 [--ref-format=<format>]
	 [-b <branch-name> | --initial-branch=<branch-name>]
	 [--shared[=<permissions>]] [<directory>]

BESCHREIBUNG

Dieser Befehl erstellt ein leeres Git-Repository – im Grunde ein Verzeichnis .git mit Unterverzeichnissen für objects, refs/heads, refs/tags und Vorlagendateien. Ein initialer Zweig ohne Commits wird erstellt (siehe die Option --initial-branch unten für dessen Namen).

Wenn die Umgebungsvariable GIT_DIR gesetzt ist, gibt sie einen Pfad an, der anstelle von ./.git als Basis des Repositorys verwendet wird.

Wenn das Objekt-Speicherverzeichnis über die Umgebungsvariable GIT_OBJECT_DIRECTORY angegeben wird, werden die SHA1-Verzeichnisse darunter erstellt; andernfalls wird das Standardverzeichnis $GIT_DIR/objects verwendet.

Das Ausführen von git init in einem bestehenden Repository ist sicher. Es überschreibt keine vorhandenen Elemente. Der Hauptgrund für das erneute Ausführen von git init ist, neu hinzugefügte Vorlagen zu übernehmen (oder das Repository an einen anderen Ort zu verschieben, wenn --separate-git-dir angegeben wird).

OPTIONEN

-q
--quiet

Nur Fehler- und Warnmeldungen ausgeben; alle anderen Ausgaben werden unterdrückt.

--bare

Erstellt ein "bare" Repository. Wenn die Umgebungsvariable GIT_DIR nicht gesetzt ist, wird sie auf das aktuelle Arbeitsverzeichnis gesetzt.

--object-format=<format>

Gibt das angegebene Objektformat (Hash-Algorithmus) für das Repository an. Die gültigen Werte sind sha1 und (wenn aktiviert) sha256. sha1 ist der Standardwert.

Hinweis: Derzeit gibt es keine Interoperabilität zwischen SHA-256-Repositorys und SHA-1-Repositorys.

Historisch warnten wir davor, dass SHA-256-Repositorys möglicherweise später rückwärts inkompatible Änderungen benötigen, wenn wir solche Interoperabilitätsfunktionen einführen. Heute erwarten wir nur noch kompatible Änderungen. Darüber hinaus ist davon auszugehen, dass SHA-256-Repositorys, die mit dem heutigen Git erstellt wurden, auch mit zukünftigen Git-Versionen ohne Datenverlust nutzbar sein werden, falls solche Änderungen notwendig werden.

--ref-format=<format>

Gibt das angegebene Ref-Speicherformat für das Repository an. Die gültigen Werte sind

  • files für lose Dateien mit "packed-refs". Dies ist der Standardwert.

  • reftable für das Reftable-Format. Dieses Format ist experimentell und seine Interna können sich ändern.

--template=<template-directory>

Gibt das Verzeichnis an, aus dem Vorlagen verwendet werden sollen. (Siehe Abschnitt "TEMPLATE VERZEICHNIS" unten.)

--separate-git-dir=<git-dir>

Anstatt das Repository als Verzeichnis entweder in $GIT_DIR oder ./.git/ zu initialisieren, wird dort eine Textdatei erstellt, die den Pfad zum tatsächlichen Repository enthält. Diese Datei fungiert als Dateisystem-unabhängiger Git-symbolischer Link zum Repository.

Wenn es sich um eine Reinitialisierung handelt, wird das Repository an den angegebenen Pfad verschoben.

-b <branch-name>
--initial-branch=<branch-name>

Verwendet <branch-name> für den initialen Zweig im neu erstellten Repository. Wenn nicht angegeben, wird auf den Standardnamen zurückgegriffen (derzeit master, wird aber zu main geändert, wenn Git 3.0 veröffentlicht wird). Der Standardname kann über die Konfigurationsvariable init.defaultBranch angepasst werden.

--shared[=(false|true|umask|group|all|world|everybody|<perm>)]

Gibt an, dass das Git-Repository gemeinsam von mehreren Benutzern genutzt werden soll. Dies ermöglicht Benutzern, die derselben Gruppe angehören, in dieses Repository zu pushen. Wenn angegeben, wird die Konfigurationsvariable core.sharedRepository so gesetzt, dass Dateien und Verzeichnisse unter $GIT_DIR mit den angeforderten Berechtigungen erstellt werden. Wenn nicht angegeben, verwendet Git die von umask(2) gemeldeten Berechtigungen.

Die Option kann folgende Werte haben, wobei group als Standardwert verwendet wird, wenn kein Wert angegeben ist

umask
false

Verwendet die von umask(2) gemeldeten Berechtigungen. Der Standardwert, wenn --shared nicht angegeben ist.

group
true

Macht das Repository gruppenbeschreibbar (und g+sx, da die Git-Gruppe möglicherweise nicht die primäre Gruppe aller Benutzer ist). Dies dient dazu, die Berechtigungen eines ansonsten sicheren umask(2)-Werts zu lockern. Beachten Sie, dass die umask immer noch für die anderen Berechtigungsbits gilt (z. B. wenn umask 0022 ist, entfernt die Verwendung von group die Leseberechtigungen für andere (Nicht-Gruppen-)Benutzer nicht). Siehe 0xxx, um die genauen Repository-Berechtigungen anzugeben.

all
world
everybody

Wie group, aber macht das Repository für alle Benutzer lesbar.

<perm>

<perm> ist eine 3-stellige Oktalzahl, der eine 0 vorangestellt ist, und jede Datei erhält den Modus <perm>. <perm> überschreibt die umask(2)-Werte der Benutzer (und lockert nicht nur die Berechtigungen wie group und all). 0640 erstellt ein Repository, das für die Gruppe lesbar, aber nicht gruppenbeschreibbar oder für andere zugänglich ist. 0660 erstellt ein Repository, das für den aktuellen Benutzer und die Gruppe les- und schreibbar, aber für andere unzugänglich ist (Verzeichnisse und ausführbare Dateien erhalten ihr x-Bit vom r-Bit für entsprechende Benutzerklassen).

Standardmäßig ist die Konfigurationsoption receive.denyNonFastForwards in gemeinsam genutzten Repositories aktiviert, sodass Sie keine Nicht-Fast-Forward-Pushes dorthin erzwingen können.

Wenn Sie ein <directory> angeben, wird der Befehl darin ausgeführt. Wenn dieses Verzeichnis nicht existiert, wird es erstellt.

TEMPLATE VERZEICHNIS

Dateien und Verzeichnisse im Vorlagenverzeichnis, deren Namen nicht mit einem Punkt beginnen, werden in das $GIT_DIR kopiert, nachdem es erstellt wurde.

Das Vorlagenverzeichnis ist eines der folgenden (in dieser Reihenfolge)

  • das Argument, das mit der Option --template angegeben wurde;

  • der Inhalt der Umgebungsvariable $GIT_TEMPLATE_DIR;

  • die Konfigurationsvariable init.templateDir; oder

  • das Standardvorlagenverzeichnis: /usr/share/git-core/templates.

Das Standardvorlagenverzeichnis enthält eine Verzeichnisstruktur, vorgeschlagene "Ausschlussmuster" (siehe gitignore[5]) und Beispiel-Hook-Dateien.

Die Beispiel-Hooks sind standardmäßig deaktiviert. Um einen der Beispiel-Hooks zu aktivieren, benennen Sie ihn um, indem Sie seine .sample-Erweiterung entfernen.

Siehe githooks[5] für allgemeinere Informationen zur Hook-Ausführung.

BEISPIELE

Starten eines neuen Git-Repositorys für eine bestehende Codebasis
$ cd /path/to/my/codebase
$ git init      (1)
$ git add .     (2)
$ git commit    (3)
  1. Erstellen eines /path/to/my/codebase/.git-Verzeichnisses.

  2. Hinzufügen aller vorhandenen Dateien zum Index.

  3. Aufzeichnen des ursprünglichen Zustands als erster Commit in der Historie.

KONFIGURATION

Alles unterhalb dieser Zeile in diesem Abschnitt wird selektiv aus der git-config[1]-Dokumentation übernommen. Der Inhalt ist derselbe wie dort zu finden.

init.templateDir

Gibt das Verzeichnis an, aus dem Vorlagen kopiert werden.

init.defaultBranch

Ermöglicht die Überschreibung des Standardzweignamens, z. B. beim Initialisieren eines neuen Repositorys.

init.defaultObjectFormat

Ermöglicht die Überschreibung des Standard-Objektformats für neue Repositories. Siehe --object-format= in git-init[1]. Sowohl die Befehlszeilenoption als auch die Umgebungsvariable GIT_DEFAULT_HASH haben Vorrang vor dieser Konfiguration.

init.defaultRefFormat

Ermöglicht die Überschreibung des Standard-Ref-Speicherformats für neue Repositories. Siehe --ref-format= in git-init[1]. Sowohl die Befehlszeilenoption als auch die Umgebungsvariable GIT_DEFAULT_REF_FORMAT haben Vorrang vor dieser Konfiguration.

GIT

Teil der git[1] Suite