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.50.1 → 2.52.0 keine Änderungen
-
2.50.0
2025-06-16
- 2.48.1 → 2.49.1 keine Änderungen
-
2.48.0
2025-01-10
- 2.46.1 → 2.47.3 keine Änderungen
-
2.46.0
2024-07-29
- 2.45.1 → 2.45.4 keine Änderungen
-
2.45.0
2024-04-29
- 2.43.1 → 2.44.4 keine Änderungen
-
2.43.0
2023-11-20
- 2.30.1 → 2.42.4 keine Änderungen
-
2.30.0
2020-12-27
- 2.29.1 → 2.29.3 keine Änderungen
-
2.29.0
2020-10-19
- 2.27.1 → 2.28.1 keine Änderungen
-
2.27.0
2020-06-01
- 2.19.3 → 2.26.3 keine Änderungen
-
2.19.2
2018-11-21
- 2.18.1 → 2.19.1 keine Änderungen
-
2.18.0
2018-06-21
- 2.7.6 → 2.17.6 keine Änderungen
-
2.6.7
2017-05-05
- 2.2.3 → 2.5.6 keine Änderungen
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
SYNOPSIS
gitupdate-ref[-m<reason>] [--no-deref]-d<ref> [<old-oid>]gitupdate-ref[-m<reason>] [--no-deref] [--create-reflog] <ref> <new-oid> [<old-oid>]gitupdate-ref[-m<reason>] [--no-deref]--stdin[-z] [--batch-updates]
BESCHREIBUNG
Mit zwei Argumenten wird die <neues-oid> in das <ref> gespeichert, wobei symbolische Refs möglicherweise aufgelöst werden. Z.B. aktualisiert git update-ref HEAD <neues-oid> den aktuellen Branch-Head auf das neue Objekt.
Mit drei Argumenten wird die <neues-oid> in das <ref> gespeichert, wobei symbolische Refs möglicherweise aufgelöst werden, nachdem überprüft wurde, ob der aktuelle Wert des <ref> mit <alte-oid> übereinstimmt. Z.B. aktualisiert git update-ref refs/heads/master <neues-oid> <alte-oid> den Master-Branch-Head auf <neues-oid>, nur wenn sein aktueller Wert <alte-oid> ist. Sie können 40 "0" oder eine leere Zeichenkette als <alte-oid> angeben, um sicherzustellen, dass das von Ihnen erstellte Ref nicht existiert.
Die letzten Argumente sind Objektnamen; dieser Befehl unterstützt ohne Optionen nicht das Aktualisieren eines symbolischen Refs, damit es auf ein anderes Ref zeigt (siehe git-symbolic-ref[1]). Aber git update-ref --stdin hat die Befehle symref-*, damit normale Refs und symbolische Refs in derselben Transaktion committet werden können.
Wenn --no-deref angegeben wird, wird das <ref> selbst überschrieben, anstatt das Ergebnis des Auflösens der symbolischen Zeiger.
Mit -d wird das benannte <ref> gelöscht, nachdem überprüft wurde, ob es noch <alte-oid> enthält.
Mit --stdin liest update-ref Anweisungen von der Standardeingabe und führt alle Modifikationen gemeinsam aus. Geben Sie Befehle der Form an
update SP <ref> SP <new-oid> [SP <old-oid>] LF create SP <ref> SP <new-oid> LF delete SP <ref> [SP <old-oid>] LF verify SP <ref> [SP <old-oid>] LF symref-update SP <ref> SP <new-target> [SP (ref SP <old-target> | oid SP <old-oid>)] LF symref-create SP <ref> SP <new-target> LF symref-delete SP <ref> [SP <old-target>] LF symref-verify SP <ref> [SP <old-target>] LF option SP <opt> LF start LF prepare LF commit LF abort LF
Mit --create-reflog erstellt update-ref für jedes Ref ein Reflog, auch wenn normalerweise keines erstellt würde.
Mit --batch-updates führt update-ref die Aktualisierungen stapelweise aus, erlaubt aber einzelnen Aktualisierungen, aufgrund ungültiger oder falscher Benutzereingaben fehzuschlagen, und wendet nur die erfolgreichen Aktualisierungen an. Systembezogene Fehler – wie E/A-Fehler oder Speicherprobleme – führen jedoch zu einem vollständigen Fehlschlagen aller stapelweisen Aktualisierungen. Fehlgeschlagene Aktualisierungen werden im folgenden Format gemeldet
rejected SP (<old-oid> | <old-target>) SP (<new-oid> | <new-target>) SP <rejection-reason> LF
Felder, die Leerzeichen enthalten, werden so zitiert, als wären sie Zeichenketten im Quellcode von C; d.h., von doppelten Anführungszeichen umschlossen und mit Backslash-Escapes. Verwenden Sie 40 "0"-Zeichen oder eine leere Zeichenkette, um einen Nullwert anzugeben. Um einen fehlenden Wert anzugeben, lassen Sie den Wert und das vorangehende Leerzeichen vollständig weg.
Alternativ verwenden Sie -z, um das Format NUL-terminiert anzugeben, ohne Anführungszeichen
update SP <ref> NUL <new-oid> NUL [<old-oid>] NUL create SP <ref> NUL <new-oid> NUL delete SP <ref> NUL [<old-oid>] NUL verify SP <ref> NUL [<old-oid>] NUL symref-update SP <ref> NUL <new-target> [NUL (ref NUL <old-target> | oid NUL <old-oid>)] NUL symref-create SP <ref> NUL <new-target> NUL symref-delete SP <ref> [NUL <old-target>] NUL symref-verify SP <ref> [NUL <old-target>] NUL option SP <opt> NUL start NUL prepare NUL commit NUL abort NUL
In diesem Format verwenden Sie 40 "0", um einen Nullwert anzugeben, und eine leere Zeichenkette, um einen fehlenden Wert anzugeben.
In beiden Formaten können Werte in jeder Form angegeben werden, die Git als Objektnamen erkennt. Befehle in einem anderen Format oder ein wiederholtes <ref> erzeugen einen Fehler. Bedeutungen der Befehle sind
- update
-
Setzt <ref> auf <neues-oid>, nachdem <alte-oid> überprüft wurde, falls angegeben. Geben Sie eine Null-<neues-oid> an, um sicherzustellen, dass das Ref nach der Aktualisierung nicht existiert, und/oder eine Null-<alte-oid>, um sicherzustellen, dass das Ref vor der Aktualisierung nicht existiert.
- create
-
Erstellt <ref> mit <neues-oid>, nachdem überprüft wurde, dass es nicht existiert. Die angegebene <neues-oid> darf nicht Null sein.
- delete
-
Löscht <ref>, nachdem überprüft wurde, dass es mit <alte-oid> existiert, falls angegeben. Wenn angegeben, darf <alte-oid> nicht Null sein.
- symref-update
-
Setzt <ref> auf <neues-ziel>, nachdem <altes-ziel> oder <alte-oid> überprüft wurde, falls angegeben. Geben Sie eine Null-<alte-oid> an, um sicherzustellen, dass das Ref vor der Aktualisierung nicht existiert.
- verify
-
Überprüft <ref> gegen <alte-oid>, ändert es aber nicht. Wenn <alte-oid> Null oder fehlend ist, darf das Ref nicht existieren.
symref-create: Erstellt ein symbolisches Ref <ref> mit <neues-ziel>, nachdem überprüft wurde, dass es nicht existiert.
- symref-delete
-
Löscht <ref>, nachdem überprüft wurde, dass es mit <altes-ziel> existiert, falls angegeben.
- symref-verify
-
Überprüft ein symbolisches <ref> gegen <altes-ziel>, ändert es aber nicht. Wenn <altes-ziel> fehlt, darf das Ref nicht existieren. Kann nur im Modus
no-derefverwendet werden. - option
-
Ändert das Verhalten des nächsten Befehls, der ein <ref> benennt. Die einzig gültige Option ist
no-deref, um das Auflösen eines symbolischen Refs zu vermeiden. - start
-
Startet eine Transaktion. Im Gegensatz zu einer nicht-transaktionalen Sitzung wird eine Transaktion automatisch abgebrochen, wenn die Sitzung ohne explizites Commit beendet wird. Dieser Befehl kann eine neue leere Transaktion erstellen, wenn die aktuelle bereits committet oder abgebrochen wurde.
- prepare
-
Bereitet die Transaktion zum Commit vor. Dies erstellt Sperrdateien für alle wartenden Referenzaktualisierungen. Wenn eine Referenz nicht gesperrt werden konnte, wird die Transaktion abgebrochen.
- commit
-
Committet alle Referenzaktualisierungen, die für die Transaktion auf Warteliste stehen, und beendet die Transaktion.
- abort
-
Bricht die Transaktion ab und gibt alle Sperren frei, wenn sich die Transaktion im vorbereiteten Zustand befindet.
Wenn alle <ref>s gleichzeitig mit passenden <alte-oid>s gesperrt werden können, werden alle Modifikationen durchgeführt. Andernfalls werden keine Modifikationen durchgeführt. Beachten Sie, dass, obwohl jede einzelne <ref> atomar aktualisiert oder gelöscht wird, ein gleichzeitiger Leser möglicherweise immer noch eine Teilmenge der Modifikationen sieht.
PROTOKOLLIERUNG VON AKTUALISIERUNGEN
Wenn der Konfigurationsparameter "core.logAllRefUpdates" auf true gesetzt ist und das Ref eines der Verzeichnisse "refs/heads/", "refs/remotes/", "refs/notes/" oder ein Pseudoref wie HEAD oder ORIG_HEAD ist; oder die Datei "$GIT_DIR/logs/<ref>" existiert, dann hängt git update-ref eine Zeile an die Logdatei "$GIT_DIR/logs/<ref>" (wobei alle symbolischen Refs aufgelöst werden, bevor der Logname erstellt wird) an, die die Änderung des Ref-Werts beschreibt. Logzeilen werden formatiert als
oldsha1 SP newsha1 SP committer LF
Wobei "alte-sha1" der 40-stellige hexadezimale Wert ist, der zuvor in <ref> gespeichert war, "neue-sha1" der 40-stellige hexadezimale Wert von <neues-oid> ist und "committer" der Name, die E-Mail-Adresse und das Datum des Committers im Standard-Git-Committer-Ident-Format sind.
Optional mit -m
oldsha1 SP newsha1 SP committer TAB message LF
Wobei alle Felder wie oben beschrieben sind und "nachricht" der Wert ist, der der Option -m übergeben wurde.
Eine Aktualisierung schlägt fehl (ohne Ändern von <ref>), wenn der aktuelle Benutzer keine neue Logdatei erstellen kann, nicht in die vorhandene Logdatei anhängen kann oder keine Committer-Informationen verfügbar hat.
ANMERKUNGEN
Symbolische Refs wurden ursprünglich mithilfe von symbolischen Links implementiert. Dies ist nun veraltet, da nicht alle Dateisysteme symbolische Links unterstützen.
Dieser Befehl folgt nur **echten** Symlinks, wenn sie mit "refs/" beginnen: andernfalls versucht er nur, sie zu lesen und als reguläre Datei zu aktualisieren (d.h., er erlaubt dem Dateisystem, ihnen zu folgen, aber er überschreibt einen solchen Symlink zu einem anderen Ort mit einem regulären Dateinamen).
GIT
Teil der git[1] Suite