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.51.2 → 2.52.0 keine Änderungen
-
2.51.1
2025-10-15
- 2.51.0 keine Änderungen
- 2.50.1 keine Änderungen
-
2.50.0
2025-06-16
- 2.49.1 keine Änderungen
-
2.49.0
2025-03-14
- 2.48.1 → 2.48.2 keine Änderungen
-
2.48.0
2025-01-10
- 2.42.1 → 2.47.3 keine Änderungen
-
2.42.0
2023-08-21
- 2.40.1 → 2.41.3 keine Änderungen
-
2.40.0
2023-03-12
- 2.39.1 → 2.39.5 keine Änderungen
-
2.39.0
2022-12-12
- 2.35.1 → 2.38.5 keine Änderungen
-
2.35.0
2022-01-24
- 2.29.1 → 2.34.8 keine Änderungen
-
2.29.0
2020-10-19
- 2.27.1 → 2.28.1 keine Änderungen
-
2.27.0
2020-06-01
- 2.26.1 → 2.26.3 keine Änderungen
-
2.26.0
2020-03-22
- 2.25.3 → 2.25.5 keine Änderungen
-
2.25.2
2020-03-17
- 2.25.1 keine Änderungen
-
2.25.0
2020-01-13
- 2.19.3 → 2.24.4 keine Änderungen
-
2.19.2
2018-11-21
- 2.14.6 → 2.19.1 keine Änderungen
-
2.13.7
2018-05-22
- 2.10.5 → 2.12.5 keine Änderungen
-
2.9.5
2017-07-30
- 2.5.6 → 2.8.6 keine Änderungen
-
2.4.12
2017-05-05
- 2.1.4 → 2.3.10 keine Änderungen
-
2.0.5
2014-12-17
SYNOPSIS
git config credential.https://example.com.username myusername git config credential.helper "$helper $options"
BESCHREIBUNG
Git benötigt manchmal Anmeldeinformationen vom Benutzer, um Operationen auszuführen. Zum Beispiel muss es möglicherweise nach einem Benutzernamen und einem Passwort fragen, um über HTTP auf ein entferntes Repository zuzugreifen. Einige Remotes akzeptieren ein persönliches Zugriffstoken oder ein OAuth-Zugriffstoken als Passwort. Dieses Handbuch beschreibt die Mechanismen, die Git verwendet, um diese Anmeldeinformationen abzufragen, sowie einige Funktionen, um die wiederholte Eingabe dieser Anmeldeinformationen zu vermeiden.
ANFRAGE NACH ANMELDEINFORMATIONEN
Wenn keine Anmeldeinformationshelfer definiert sind, versucht Git die folgenden Strategien, um den Benutzer nach Benutzernamen und Passwörtern zu fragen:
-
Wenn die Umgebungsvariable
GIT_ASKPASSgesetzt ist, wird das durch die Variable angegebene Programm aufgerufen. Ein geeigneter Prompt wird dem Programm auf der Kommandozeile übergeben, und die Eingabe des Benutzers wird von seiner Standardausgabe gelesen. -
Andernfalls, wenn die Konfigurationsvariable
core.askPassgesetzt ist, wird ihr Wert wie oben verwendet. -
Andernfalls, wenn die Umgebungsvariable
SSH_ASKPASSgesetzt ist, wird ihr Wert wie oben verwendet. -
Andernfalls wird der Benutzer auf dem Terminal aufgefordert.
WIEDERHOLUNG VERMEIDEN
Es kann mühsam sein, dieselben Anmeldeinformationen immer wieder einzugeben. Git bietet zwei Methoden, um diese Belästigung zu reduzieren:
-
Statische Konfiguration von Benutzernamen für einen bestimmten Authentifizierungskontext.
-
Anmeldeinformationshelfer zum Zwischenspeichern oder Speichern von Passwörtern oder zur Interaktion mit einem systemweiten Passwortspeicher oder Schlüsselbund.
Die erste Methode ist einfach und geeignet, wenn Sie keinen sicheren Speicher für ein Passwort haben. Sie wird im Allgemeinen konfiguriert, indem Sie Folgendes zu Ihrer Konfiguration hinzufügen:
[credential "https://example.com"] username = me
Anmeldeinformationshelfer hingegen sind externe Programme, von denen Git sowohl Benutzernamen als auch Passwörter anfordern kann. Sie greifen typischerweise auf sichere Speicher zu, die vom Betriebssystem oder anderen Programmen bereitgestellt werden. Alternativ kann ein Anmeldeinformationsgenerierungshelfer Anmeldeinformationen für bestimmte Server über eine API generieren.
Um einen Helfer zu verwenden, müssen Sie zuerst einen auswählen (siehe unten für eine Liste).
Möglicherweise haben Sie auch Helfer von Drittanbietern installiert. Suchen Sie nach credential-* in der Ausgabe von git help -a und konsultieren Sie die Dokumentation der einzelnen Helfer. Sobald Sie einen Helfer ausgewählt haben, können Sie Git mitteilen, ihn zu verwenden, indem Sie seinen Namen in die Variable credential.helper eintragen.
-
Finden Sie einen Helfer.
$ git help -a | grep credential- credential-foo
-
Lesen Sie seine Beschreibung.
$ git help credential-foo
-
Teilen Sie Git mit, ihn zu verwenden.
$ git config --global credential.helper foo
Verfügbare Helfer
Git enthält derzeit die folgenden Helfer:
- cache
-
Zwischenspeichern von Anmeldeinformationen im Speicher für eine kurze Zeit. Weitere Details finden Sie unter git-credential-cache[1].
- store
-
Speichern von Anmeldeinformationen auf unbestimmte Zeit auf der Festplatte. Weitere Details finden Sie unter git-credential-store[1].
Beliebte Helfer mit sicherem persistentem Speicher umfassen:
-
git-credential-libsecret (Linux)
-
git-credential-osxkeychain (macOS)
-
git-credential-wincred (Windows)
-
Git Credential Manager (plattformübergreifend, enthalten in Git für Windows)
Die Community pflegt eine umfassende Liste von Git-Anmeldeinformationshelfern unter https://git-scm.de/doc/credential-helpers.
OAuth
Eine Alternative zur Eingabe von Passwörtern oder persönlichen Zugriffstokens ist die Verwendung eines OAuth-Anmeldeinformationshelfers. Die anfängliche Authentifizierung öffnet ein Browserfenster zum Host. Die nachfolgende Authentifizierung erfolgt im Hintergrund. Viele beliebte Git-Hosts unterstützen OAuth.
Beliebte Helfer mit OAuth-Unterstützung umfassen:
-
Git Credential Manager (plattformübergreifend, enthalten in Git für Windows)
-
git-credential-oauth (plattformübergreifend, in vielen Linux-Distributionen enthalten)
ANMELDEINFORMATIONEN-KONTEXTE
Git betrachtet jede Anmeldeinformation als einen Kontext, der durch eine URL definiert ist. Dieser Kontext wird verwendet, um kontextspezifische Konfigurationen nachzuschlagen und wird an alle Helfer übergeben, die ihn als Index für den sicheren Speicher verwenden können.
Stellen Sie sich zum Beispiel vor, wir greifen auf https://example.com/foo.git zu. Wenn Git in einer Konfigurationsdatei nachsieht, ob ein Abschnitt zu diesem Kontext passt, wird er die beiden als übereinstimmend betrachten, wenn der Kontext eine spezifischere Untermenge des Musters in der Konfigurationsdatei ist. Zum Beispiel, wenn Sie Folgendes in Ihrer Konfigurationsdatei haben:
[credential "https://example.com"] username = foo
dann werden wir übereinstimmen: beide Protokolle sind gleich und beide Hosts sind gleich. Dieser Kontext würde jedoch nicht übereinstimmen:
[credential "https://kernel.org"] username = foo
weil die Hostnamen unterschiedlich sind. Er würde auch nicht zu foo.example.com passen; Git vergleicht Hostnamen exakt, ohne zu berücksichtigen, ob zwei Hosts zum selben Domäne gehören. Ebenso würde ein Konfigurationseintrag für http://example.com nicht übereinstimmen: Git vergleicht die Protokolle exakt. Sie können jedoch Wildcards im Domänennamen und andere Musterabgleichtechniken wie bei den Optionen http.<URL>.* verwenden.
Wenn die "Muster"-URL eine Pfadkomponente enthält, muss diese als Präfixpfad übereinstimmen: Der Kontext https://example.com/bar passt zu einem Konfigurationseintrag für https://example.com/bar/baz.git, passt aber nicht zu einem Konfigurationseintrag für https://example.com/other/repo.git oder https://example.com/barry/repo.git (obwohl es ein Zeichenkettenpräfix ist).
KONFIGURATIONSOPTIONEN
Optionen für einen Anmeldeinformationskontext können entweder in credential.* (was für alle Anmeldeinformationen gilt) oder in credential.<URL>.* konfiguriert werden, wobei <URL> dem Kontext wie oben beschrieben entspricht.
Die folgenden Optionen sind an beiden Stellen verfügbar:
- helper
-
Der Name eines externen Anmeldeinformationshelfers und alle zugehörigen Optionen. Wenn der Helfername kein absoluter Pfad ist, wird die Zeichenkette
gitcredential-vorangestellt. Die resultierende Zeichenkette wird von der Shell ausgeführt (so dass zum Beispiel das Setzen auffoo--option=bargitcredential-foo--option=barüber die Shell ausführt). Beispiele für die Verwendung finden Sie im Handbuch der spezifischen Helfer.Wenn es mehrere Instanzen der Konfigurationsvariable
credential.helpergibt, wird jeder Helfer nacheinander ausprobiert und kann einen Benutzernamen, ein Passwort oder nichts liefern. Sobald Git sowohl einen Benutzernamen als auch ein nicht abgelaufenes Passwort erworben hat, werden keine weiteren Helfer mehr ausprobiert.Wenn
credential.helperauf eine leere Zeichenkette gesetzt wird, wird die Helferliste geleert (so können Sie einen Helfer, der von einer Konfigurationsdatei mit niedrigerer Priorität gesetzt wurde, überschreiben, indem Sie den leeren Helfer gefolgt von der gewünschten Helferliste konfigurieren). - username
-
Ein Standardbenutzername, falls keiner in der URL angegeben ist.
- useHttpPath
-
Standardmäßig berücksichtigt Git die "Pfad"-Komponente einer HTTP-URL nicht als relevanten Faktor für den Abgleich durch externe Helfer. Das bedeutet, dass eine für
https://example.com/foo.gitgespeicherte Anmeldeinformation auch fürhttps://example.com/bar.gitverwendet wird. Wenn Sie diese Fälle unterscheiden möchten, setzen Sie diese Option auftrue.
BENUTZERDEFINIERTE HELFER
Sie können Ihre eigenen benutzerdefinierten Helfer schreiben, um mit jedem System zu interagieren, in dem Sie Anmeldeinformationen aufbewahren.
Anmeldeinformationshelfer sind Programme, die von Git ausgeführt werden, um Anmeldeinformationen aus langfristigen Speichern abzurufen oder dort zu speichern (wobei "langfristig" einfach länger als ein einzelner Git-Prozess ist; z.B. können Anmeldeinformationen für einige Minuten im Speicher oder unbegrenzt auf der Festplatte gespeichert werden).
Jeder Helfer wird durch eine einzelne Zeichenkette in der Konfigurationsvariable credential.helper (und anderen, siehe git-config[1]) angegeben. Die Zeichenkette wird von Git in einen auszuführenden Befehl nach folgenden Regeln umgewandelt:
-
Wenn die Helferzeichenkette mit "!" beginnt, wird sie als Shell-Snippet betrachtet und alles nach dem "!" wird zum Befehl.
-
Andernfalls, wenn die Helferzeichenkette mit einem absoluten Pfad beginnt, wird die unveränderte Helferzeichenkette zum Befehl.
-
Andernfalls wird die Zeichenkette "git credential-" vorangestellt und das Ergebnis wird zum Befehl.
Dem resultierenden Befehl wird ein "operation"-Argument angehängt (Details siehe unten), und das Ergebnis wird von der Shell ausgeführt.
Hier sind einige Beispieldefinitionen:
# run "git credential-foo"
[credential]
helper = foo
# same as above, but pass an argument to the helper
[credential]
helper = "foo --bar=baz"
# the arguments are parsed by the shell, so use shell
# quoting if necessary
[credential]
helper = "foo --bar='whitespace arg'"
# store helper (discouraged) with custom location for the db file;
# use `--file ~/.git-secret.txt`, rather than `--file=~/.git-secret.txt`,
# to allow the shell to expand tilde to the home directory.
[credential]
helper = "store --file ~/.git-secret.txt"
# you can also use an absolute path, which will not use the git wrapper
[credential]
helper = "/path/to/my/helper --with-arguments"
# or you can specify your own shell snippet
[credential "https://example.com"]
username = your_user
helper = "!f() { test \"$1\" = get && echo \"password=$(cat $HOME/.secret)\"; }; f"
Im Allgemeinen ist Regel (3) für Benutzer am einfachsten anzugeben. Autoren von Anmeldeinformationshelfern sollten sich bemühen, ihre Benutzer zu unterstützen, indem sie ihr Programm "git-credential-$NAME" nennen und es während der Installation in den $PATH oder $GIT_EXEC_PATH legen, was es einem Benutzer ermöglicht, es mit git config credential.helper $NAME zu aktivieren.
Wenn ein Helfer ausgeführt wird, wird ihm ein "operation"-Argument an seine Kommandozeile angehängt, das einer der folgenden ist:
Die Details der Anmeldeinformation werden über den Standardeingabestrom des Helfers bereitgestellt. Das genaue Format ist dasselbe wie das Eingabe-/Ausgabeformat des git credential Plumbing-Befehls (siehe den Abschnitt INPUT/OUTPUT FORMAT in git-credential[1] für eine detaillierte Spezifikation).
Für eine get-Operation sollte der Helfer eine Liste von Attributen auf stdout im selben Format ausgeben (siehe git-credential[1] für gängige Attribute). Ein Helfer kann eine Teilmenge oder auch gar keine Werte ausgeben, wenn er nichts Nützliches bereitzustellen hat. Alle bereitgestellten Attribute überschreiben die bereits im Anmeldeinformations-Subsystem von Git bekannten Attribute. Nicht erkannte Attribute werden stillschweigend verworfen.
Obwohl es möglich ist, alle Attribute zu überschreiben, sollten sich gut funktionierende Helfer davon für jedes Attribut außer Benutzername und Passwort enthalten.
Wenn ein Helfer ein Attribut quit mit dem Wert true oder 1 ausgibt, werden keine weiteren Helfer konsultiert und der Benutzer wird nicht aufgefordert (wenn keine Anmeldeinformationen bereitgestellt wurden, schlägt die Operation fehl).
Ebenso werden keine weiteren Helfer mehr konsultiert, sobald sowohl Benutzername als auch Passwort bereitgestellt wurden.
Für eine store- oder erase-Operation wird die Ausgabe des Helfers ignoriert.
Wenn ein Helfer die angeforderte Operation nicht ausführen kann oder den Benutzer über ein potenzielles Problem informieren muss, kann er auf stderr schreiben.
Wenn er die angeforderte Operation nicht unterstützt (z.B. ein schreibgeschützter Speicher oder Generator), sollte er die Anfrage stillschweigend ignorieren.
Wenn ein Helfer eine andere Operation erhält, sollte er die Anfrage stillschweigend ignorieren. Dies lässt Raum für zukünftige Operationen (ältere Helfer werden neue Anfragen einfach ignorieren).
GIT
Teil der git[1] Suite