Einrichtung und Konfiguration
Projekte holen und erstellen
Grundlegende Snapshots
Branching und Merging
Projekte teilen und aktualisieren
Inspektion und Vergleich
Patching
Debugging
Externe Systeme
Server-Administration
Anleitungen
- gitattributes
- Konventionen der Kommandozeile
- Tägliches Git
- Häufig gestellte Fragen (FAQ)
- Glossar
- Hooks
- gitignore
- gitmodules
- Revisionen
- Submodule
- Tutorial
- Workflows
- Alle Anleitungen...
Administration
Plumbing-Befehle
-
2.52.0
2025-11-17
- 2.48.1 → 2.51.2 keine Änderungen
-
2.48.0
2025-01-10
- 2.47.1 → 2.47.3 keine Änderungen
-
2.47.0
2024-10-06
- 2.45.1 → 2.46.4 keine Änderungen
-
2.45.0
2024-04-29
- 2.44.1 → 2.44.4 keine Änderungen
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.7 keine Änderungen
-
2.43.0
2023-11-20
- 2.42.1 → 2.42.4 keine Änderungen
-
2.42.0
2023-08-21
- 2.38.1 → 2.41.3 keine Änderungen
-
2.38.0
2022-10-02
- 2.35.1 → 2.37.7 keine Änderungen
-
2.35.0
2022-01-24
- 2.30.1 → 2.34.8 keine Änderungen
-
2.30.0
2020-12-27
- 2.29.1 → 2.29.3 keine Änderungen
-
2.29.0
2020-10-19
- 2.28.1 keine Änderungen
-
2.28.0
2020-07-27
- 2.27.1 keine Änderungen
-
2.27.0
2020-06-01
- 2.21.1 → 2.26.3 keine Änderungen
-
2.21.0
2019-02-24
- 2.13.7 → 2.20.5 keine Änderungen
-
2.12.5
2017-09-22
- 2.10.5 → 2.11.4 keine Änderungen
-
2.9.5
2017-07-30
- 2.5.6 → 2.8.6 keine Änderungen
-
2.4.12
2017-05-05
- 2.3.10 keine Änderungen
-
2.2.3
2015-09-04
- 2.1.4 keine Änderungen
-
2.0.5
2014-12-17
SYNOPSIS
gitinit[-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_DIRnicht 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
sha1und (wenn aktiviert)sha256.sha1ist 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
-
filesfür lose Dateien mit "packed-refs". Dies ist der Standardwert. -
reftablefü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_DIRoder./.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 zumaingeändert, wenn Git 3.0 veröffentlicht wird). Der Standardname kann über die Konfigurationsvariableinit.defaultBranchangepasst werden. -
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.sharedRepositoryso gesetzt, dass Dateien und Verzeichnisse unter$GIT_DIRmit den angeforderten Berechtigungen erstellt werden. Wenn nicht angegeben, verwendet Git die vonumask(2) gemeldeten Berechtigungen.Die Option kann folgende Werte haben, wobei
groupals Standardwert verwendet wird, wenn kein Wert angegeben istumaskfalse-
Verwendet die von
umask(2) gemeldeten Berechtigungen. Der Standardwert, wenn--sharednicht angegeben ist. grouptrue-
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 sicherenumask(2)-Werts zu lockern. Beachten Sie, dass die umask immer noch für die anderen Berechtigungsbits gilt (z. B. wenn umask0022ist, entfernt die Verwendung vongroupdie Leseberechtigungen für andere (Nicht-Gruppen-)Benutzer nicht). Siehe0xxx, um die genauen Repository-Berechtigungen anzugeben. allworldeverybody-
Wie
group, aber macht das Repository für alle Benutzer lesbar. - <perm>
-
<perm> ist eine 3-stellige Oktalzahl, der eine
0vorangestellt ist, und jede Datei erhält den Modus <perm>. <perm> überschreibt dieumask(2)-Werte der Benutzer (und lockert nicht nur die Berechtigungen wiegroupundall).0640erstellt ein Repository, das für die Gruppe lesbar, aber nicht gruppenbeschreibbar oder für andere zugänglich ist.0660erstellt 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 ihrx-Bit vomr-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
--templateangegeben 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)
-
Erstellen eines
/path/to/my/codebase/.git-Verzeichnisses. -
Hinzufügen aller vorhandenen Dateien zum Index.
-
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 UmgebungsvariableGIT_DEFAULT_HASHhaben 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 UmgebungsvariableGIT_DEFAULT_REF_FORMAThaben Vorrang vor dieser Konfiguration.
GIT
Teil der git[1] Suite