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.1 → 2.52.0 keine Änderungen
-
2.51.0
2025-08-18
- 2.48.1 → 2.50.1 keine Änderungen
-
2.48.0
2025-01-10
- 2.46.1 → 2.47.3 keine Änderungen
-
2.46.0
2024-07-29
- 2.44.1 → 2.45.4 keine Änderungen
-
2.44.0
2024-02-23
- 2.43.2 → 2.43.7 keine Änderungen
-
2.43.1
2024-02-09
-
2.43.0
2023-11-20
- 2.39.1 → 2.42.4 keine Änderungen
-
2.39.0
2022-12-12
- 2.36.1 → 2.38.5 keine Änderungen
-
2.36.0
2022-04-18
- 2.33.1 → 2.35.8 keine Änderungen
-
2.33.0
2021-08-16
- 2.30.1 → 2.32.7 keine Änderungen
-
2.30.0
2020-12-27
- 2.23.1 → 2.29.3 keine Änderungen
-
2.23.0
2019-08-16
- 2.22.1 → 2.22.5 keine Änderungen
-
2.22.0
2019-06-07
- 2.21.1 → 2.21.4 keine Änderungen
-
2.21.0
2019-02-24
- 2.19.1 → 2.20.5 keine Änderungen
-
2.19.0
2018-09-10
- 2.18.1 → 2.18.5 keine Änderungen
-
2.18.0
2018-06-21
- 2.15.4 → 2.17.6 keine Änderungen
-
2.14.6
2019-12-06
-
2.13.7
2018-05-22
-
2.12.5
2017-09-22
- 2.9.5 → 2.11.4 keine Änderungen
-
2.8.6
2017-07-30
-
2.7.6
2017-07-30
-
2.6.7
2017-05-05
- 2.5.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
BESCHREIBUNG
- alternative Objekt-Datenbank
-
Über den "alternates"-Mechanismus kann ein Repository einen Teil seiner Objekt-Datenbank von einer anderen Objekt-Datenbank erben, die als "Alternative" bezeichnet wird.
- Bare-Repository
-
Ein Bare-Repository ist normalerweise ein passend benanntes Verzeichnis mit der Suffix ".git", das keine lokal ausgecheckte Kopie der Dateien unter Versionskontrolle enthält. Das bedeutet, dass alle Git-Administrations- und Steuerdateien, die normalerweise im versteckten Unterverzeichnis ".git" vorhanden wären, stattdessen direkt im Verzeichnis "repository.git" vorhanden sind und keine anderen Dateien vorhanden oder ausgecheckt sind. Üblicherweise stellen Herausgeber öffentlicher Repositories Bare-Repositories zur Verfügung.
- Blob-Objekt
-
Nicht typisiertes Objekt, z. B. der Inhalt einer Datei.
- Branch
-
Ein "Branch" ist eine Entwicklungslinie. Der letzte Commit in einem Branch wird als Spitze dieses Branches bezeichnet. Die Spitze des Branches wird durch einen Branch-Head referenziert, der sich vorwärts bewegt, wenn zusätzliche Entwicklung auf dem Branch durchgeführt wird. Ein einzelnes Git-Repository kann eine beliebige Anzahl von Branches verfolgen, aber Ihr Arbeitsverzeichnis ist nur mit einem davon ("aktueller" oder "ausgecheckter" Branch) verbunden, und HEAD zeigt auf diesen Branch.
- Cache
-
Veraltet für: Index.
- Kette
-
Eine Liste von Objekten, wobei jedes Objekt in der Liste einen Verweis auf seinen Nachfolger enthält (z. B. könnte der Nachfolger eines Commits eines seiner Eltern sein).
- Änderungssatz
-
BitKeeper/cvsps-Sprache für "Commit". Da Git keine Änderungen, sondern Zustände speichert, ergibt die Verwendung des Begriffs "Änderungssätze" bei Git keinen Sinn.
- Auschecken
-
Die Aktion, alle oder Teile des Arbeitsverzeichnisses mit einem Baumobjekt oder Blob aus der Objekt-Datenbank zu aktualisieren und den Index und HEAD zu aktualisieren, wenn das gesamte Arbeitsverzeichnis auf einen neuen Branch gezeigt hat.
- Cherry-Picking
-
Im SCM-Jargon bedeutet "Cherry Pick", eine Teilmenge von Änderungen aus einer Reihe von Änderungen (typischerweise Commits) auszuwählen und sie als neue Reihe von Änderungen auf einer anderen Codebasis aufzuzeichnen. In Git wird dies durch den Befehl "git cherry-pick" durchgeführt, um die von einem vorhandenen Commit eingeführte Änderung zu extrahieren und sie basierend auf der Spitze des aktuellen Branches als neuen Commit aufzuzeichnen.
- sauber
-
Ein Arbeitsverzeichnis ist "sauber", wenn es mit der vom aktuellen Head referenzierten Revision übereinstimmt. Siehe auch "dirty".
- Commit
-
Als Substantiv: Ein einzelner Punkt in der Git-Historie; die gesamte Historie eines Projekts wird als eine Menge von zusammenhängenden Commits dargestellt. Das Wort "Commit" wird von Git oft an denselben Stellen verwendet, an denen andere Versionskontrollsysteme die Wörter "Revision" oder "Version" verwenden. Wird auch als Kurzform für Commit-Objekt verwendet.
- Commit-Graph-Konzept, Darstellungen und Verwendung
-
Ein Synonym für die DAG-Struktur, die durch die Commits in der Objekt-Datenbank gebildet wird und durch die Spitzen der Branches referenziert wird, wobei die Kette der verknüpften Commits verwendet wird. Diese Struktur ist der definitive Commit-Graph. Der Graph kann auf andere Weise dargestellt werden, z. B. als "Commit-Graph-Datei".
- Commit-Graph-Datei
-
Die "Commit-Graph"-Datei (normalerweise mit Bindestrich) ist eine ergänzende Darstellung des Commit-Graphen, die das Durchlaufen des Commit-Graphen beschleunigt. Die "Commit-Graph"-Datei wird entweder im Verzeichnis .git/objects/info oder im info-Verzeichnis einer alternativen Objekt-Datenbank gespeichert.
- Commit-Objekt
-
Ein Objekt, das die Informationen über eine bestimmte Revision enthält, wie z. B. Eltern, Committer, Autor, Datum und das Baumobjekt, das dem obersten Verzeichnis der gespeicherten Revision entspricht.
- Commit-ish (auch committish)
-
Ein Commit-Objekt oder ein Objekt, das rekursiv zu einem Commit-Objekt dereferenziert werden kann. Die folgenden sind alle Commit-ishes: ein Commit-Objekt, ein Tag-Objekt, das auf ein Commit-Objekt zeigt, ein Tag-Objekt, das auf ein Tag-Objekt zeigt, das auf ein Commit-Objekt zeigt, usw.
- Core Git
-
Grundlegende Datenstrukturen und Dienstprogramme von Git. Bietet nur begrenzte Werkzeuge zur Quellcodeverwaltung.
- DAG
-
Gerichteter azyklischer Graph. Die Commit-Objekte bilden einen gerichteten azyklischen Graphen, da sie Eltern (gerichtet) haben und der Graph der Commit-Objekte azyklisch ist (es gibt keine Kette, die mit demselben Objekt beginnt und endet).
- hängendes Objekt
-
Ein unerreichbares Objekt, das auch von anderen unerreichbaren Objekten nicht erreichbar ist; ein hängendes Objekt hat keine Verweise von Referenzen oder Objekten im Repository.
- Dereferenzieren
-
Bezieht sich auf eine symbolische Referenz: die Aktion, auf die Referenz zuzugreifen, auf die eine symbolische Referenz zeigt. Rekursives Dereferenzieren beinhaltet die wiederholte Ausführung des oben genannten Prozesses auf der resultierenden Referenz, bis eine nicht-symbolische Referenz gefunden wird.
Bezieht sich auf ein Tag-Objekt: die Aktion, auf das Objekt zuzugreifen, auf das ein Tag zeigt. Tags werden rekursiv dereferenziert, indem die Operation auf dem Ergebnisobjekt wiederholt wird, bis das Ergebnis entweder einen bestimmten Objekttyp (wo anwendbar) oder jeden Nicht-"Tag"-Objekttyp hat. Ein Synonym für "rekursives Dereferenzieren" im Kontext von Tags ist "peelen".
Bezieht sich auf ein Commit-Objekt: die Aktion, auf das Commit-Baumobjekt zuzugreifen. Commits können nicht rekursiv dereferenziert werden.
Sofern nicht anders angegeben, ist "Dereferenzieren", wie es im Kontext von Git-Befehlen oder -Protokollen verwendet wird, implizit rekursiv.
- Detached HEAD
-
Normalerweise speichert HEAD den Namen eines Branches, und Befehle, die auf die von HEAD repräsentierte Historie wirken, arbeiten auf der Historie, die zur Spitze des Branches führt, auf den HEAD zeigt. Git erlaubt es Ihnen jedoch auch, einen beliebigen Commit auszuchecken, der nicht unbedingt die Spitze eines bestimmten Branches ist. Der HEAD in einem solchen Zustand wird als "detached" bezeichnet.
Beachten Sie, dass Befehle, die auf die Historie des aktuellen Branches wirken (z. B.
gitcommit, um eine neue Historie darauf aufzubauen), auch funktionieren, wenn der HEAD detached ist. Sie aktualisieren den HEAD, um auf die Spitze der aktualisierten Historie zu zeigen, ohne einen Branch zu beeinflussen. Befehle, die Informationen *über* den aktuellen Branch aktualisieren oder abfragen (z. B.gitbranch--set-upstream-to, das festlegt, mit welchem Remote-Tracking-Branch der aktuelle Branch integriert wird), funktionieren offensichtlich nicht, da in diesem Zustand kein (echter) aktueller Branch abgefragt werden kann. - Verzeichnis
-
Die Liste, die Sie mit "ls" erhalten :-)
- dirty
-
Ein Arbeitsverzeichnis wird als "dirty" bezeichnet, wenn es Änderungen enthält, die noch nicht auf den aktuellen Branch committet wurden.
- böses Merge
-
Ein böses Merge ist ein Merge, der Änderungen einführt, die in keinem Elternteil vorkommen.
- Fast-Forward
-
Ein Fast-Forward ist eine spezielle Art von Merge, bei dem Sie eine Revision haben und Änderungen von einem anderen Branch "mergen", die zufällig ein Nachfahre dessen sind, was Sie haben. In einem solchen Fall erstellen Sie keinen neuen Merge-Commit, sondern aktualisieren lediglich Ihren Branch, damit er auf dieselbe Revision wie der Branch zeigt, den Sie mergen. Dies geschieht häufig bei einem Remote-Tracking-Branch eines Remote-Repositorys.
- Abrufen
-
Das Abrufen eines Branches bedeutet, den Head-Referenz des Branches aus einem Remote-Repository abzurufen, herauszufinden, welche Objekte in der lokalen Objekt-Datenbank fehlen, und diese ebenfalls abzurufen. Siehe auch git-fetch[1].
- Dateisystem
-
Linus Torvalds entwarf Git ursprünglich als Dateisystem im User-Space, d. h. als Infrastruktur zum Speichern von Dateien und Verzeichnissen. Dies stellte die Effizienz und Geschwindigkeit von Git sicher.
- Git-Archiv
-
Synonym für Repository (für Archiv-Leute).
- Git-Datei
-
Eine einfache Datei ".git" am Stammverzeichnis eines Arbeitsverzeichnisses, die auf das Verzeichnis verweist, das das eigentliche Repository ist. Für die richtige Verwendung siehe git-worktree[1] oder git-submodule[1]. Für die Syntax siehe gitrepository-layout[5].
- Grafts
-
Grafts ermöglichen es, zwei ansonsten unterschiedliche Entwicklungslinien zu verbinden, indem gefälschte Ahneninformationen für Commits aufgezeichnet werden. Auf diese Weise können Sie Git dazu bringen, so zu tun, als ob die Menge der Eltern eines Commits anders ist als die, die bei der Erstellung des Commits aufgezeichnet wurde. Konfiguriert über die Datei
.git/info/grafts.Beachten Sie, dass der Graft-Mechanismus veraltet ist und zu Problemen beim Übertragen von Objekten zwischen Repositories führen kann; siehe git-replace[1] für ein flexibleres und robusteres System, das dasselbe tut.
- Hash
-
Im Kontext von Git ein Synonym für Objektname.
- Head
-
Eine benannte Referenz auf den Commit an der Spitze eines Branches. Heads werden in einer Datei im Verzeichnis
$GIT_DIR/refs/heads/gespeichert, außer bei Verwendung von Packed Refs. (Siehe git-pack-refs[1].) - HEAD
-
Der aktuelle Branch. Genauer gesagt: Ihr Arbeitsverzeichnis wird normalerweise aus dem Zustand des Baums abgeleitet, auf den HEAD verweist. HEAD ist eine Referenz auf einen der Heads in Ihrem Repository, außer bei Verwendung eines detached HEAD, in diesem Fall verweist er direkt auf einen beliebigen Commit.
- Head-Referenz
-
Ein Synonym für Head.
- Hook
-
Während der normalen Ausführung mehrerer Git-Befehle werden optionale Skripte aufgerufen, die es einem Entwickler ermöglichen, Funktionalität oder Überprüfungen hinzuzufügen. Typischerweise ermöglichen Hooks, dass ein Befehl vorab überprüft und potenziell abgebrochen werden kann, und ermöglichen eine Benachrichtigung nach Abschluss des Vorgangs. Die Hook-Skripte befinden sich im Verzeichnis
$GIT_DIR/hooks/und werden aktiviert, indem einfach das Suffix ".sample" aus dem Dateinamen entfernt wird. In früheren Versionen von Git mussten Sie diese ausführbar machen. - Index
-
Eine Sammlung von Dateien mit Stat-Informationen, deren Inhalte als Objekte gespeichert werden. Der Index ist eine gespeicherte Version Ihres Arbeitsverzeichnisses. Tatsächlich kann er auch eine zweite und sogar eine dritte Version eines Arbeitsverzeichnisses enthalten, die beim Mergen verwendet werden.
- Index-Eintrag
-
Die Informationen zu einer bestimmten Datei, die im Index gespeichert sind. Ein Index-Eintrag kann unvermischt sein, wenn ein Merge gestartet, aber noch nicht abgeschlossen wurde (d. h. wenn der Index mehrere Versionen dieser Datei enthält).
- Master
-
Der Standard-Entwicklungs-Branch. Jedes Mal, wenn Sie ein Git-Repository erstellen, wird ein Branch namens "master" erstellt und zum aktiven Branch. In den meisten Fällen enthält dieser die lokale Entwicklung, obwohl das rein konventionell ist und nicht vorgeschrieben.
- Merge
-
Als Verb: Die Inhalte eines anderen Branches (möglicherweise aus einem externen Repository) in den aktuellen Branch zu integrieren. Wenn der gemergte Branch aus einem anderen Repository stammt, geschieht dies durch zuerst das Abrufen (fetching) des Remote-Branches und dann das Mergen des Ergebnisses in den aktuellen Branch. Diese Kombination aus Fetch- und Merge-Vorgängen wird als Pull bezeichnet. Das Mergen wird durch einen automatischen Prozess durchgeführt, der Änderungen identifiziert, die seit der Abzweigung der Branches vorgenommen wurden, und dann alle diese Änderungen zusammen anwendet. In Fällen, in denen Änderungen zu Konflikten führen, kann eine manuelle Intervention erforderlich sein, um den Merge abzuschließen.
Als Substantiv: Wenn es sich nicht um einen Fast-Forward handelt, führt ein erfolgreicher Merge zur Erstellung eines neuen Commits, der das Ergebnis des Merges darstellt und die Spitzen der gemergten Branches als Eltern hat. Dieser Commit wird als "Merge-Commit" oder manchmal einfach als "Merge" bezeichnet.
- Objekt
-
Die Speichereinheit in Git. Es wird eindeutig durch den SHA-1 seines Inhalts identifiziert. Folglich kann ein Objekt nicht geändert werden.
- Objekt-Datenbank
-
Speichert eine Menge von "Objekten", und ein einzelnes Objekt wird durch seinen Objektnamen identifiziert. Die Objekte befinden sich normalerweise in
$GIT_DIR/objects/. - Objektidentifikator (OID)
-
Synonym für Objektname.
- Objektname
-
Der eindeutige Identifikator eines Objekts. Der Objektname wird normalerweise durch eine 40 Zeichen lange Hexadezimalzeichenkette dargestellt. Umgangssprachlich auch als SHA-1 bezeichnet.
- Objekttyp
-
Einer der Identifikatoren "Commit", "Tree", "Tag" oder "Blob", der den Typ eines Objekts beschreibt.
- Octopus
- Waise
-
Die Handlung, auf einen Branch zu wechseln, der noch nicht existiert (d. h. ein ungeborener Branch). Nach einer solchen Operation wird der zuerst erstellte Commit zu einem Commit ohne Elternteil, was eine neue Historie beginnt.
- Origin
-
Das Standard-Upstream-Repository. Die meisten Projekte haben mindestens ein Upstream-Projekt, das sie verfolgen. Standardmäßig wird *origin* zu diesem Zweck verwendet. Neue Upstream-Updates werden in die Remote-Tracking-Branches namens origin/name-des-upstream-branch geholt, die Sie mit
gitbranch-ranzeigen können. - Overlay
-
Nur Dateien im Arbeitsverzeichnis aktualisieren und hinzufügen, aber nicht löschen, ähnlich wie *cp -R* den Inhalt im Zielverzeichnis aktualisieren würde. Dies ist der Standardmodus bei einem Checkout, wenn Dateien aus dem Index oder einem Tree-ish ausgecheckt werden. Im Gegensatz dazu löscht der No-Overlay-Modus auch verfolgte Dateien, die nicht in der Quelle vorhanden sind, ähnlich wie *rsync --delete*.
- Pack
-
Eine Sammlung von Objekten, die in einer einzigen Datei komprimiert wurden (um Platz zu sparen oder sie effizient zu übertragen).
- Pack-Index
-
Die Liste von Identifikatoren und anderen Informationen der Objekte in einem Pack, um den effizienten Zugriff auf den Inhalt eines Packs zu erleichtern.
- Pfadangabe
-
Muster zur Einschränkung von Pfaden in Git-Befehlen.
Pfadangaben werden in der Befehlszeile von "git ls-files", "git ls-tree", "git add", "git grep", "git diff", "git checkout" und vielen anderen Befehlen verwendet, um den Geltungsbereich von Operationen auf eine Teilmenge des Baums oder des Arbeitsverzeichnisses zu beschränken. Lesen Sie die Dokumentation jedes Befehls, um zu erfahren, ob Pfade relativ zum aktuellen Verzeichnis oder zum obersten Verzeichnis sind. Die Pfadangabesyntax lautet wie folgt:
-
Jeder Pfad stimmt mit sich selbst überein.
-
Der Pfadangabe bis zum letzten Schrägstrich stellt ein Verzeichnispräfix dar. Der Geltungsbereich dieser Pfadangabe ist auf diesen Unterbaum beschränkt.
-
Der Rest der Pfadangabe ist ein Muster für den Rest des Pfadnamens. Pfade, die relativ zum Verzeichnispräfix liegen, werden mit fnmatch(3) mit diesem Muster verglichen; insbesondere können * und ? Trennzeichen für Verzeichnisse abgleichen.
Beispielsweise stimmt Documentation/*.jpg mit allen .jpg-Dateien im Unterbaum Documentation überein, einschließlich Documentation/chapter_1/figure_1.jpg.
Eine Pfadangabe, die mit einem Doppelpunkt ":" beginnt, hat eine besondere Bedeutung. In der Kurzform folgt auf den führenden Doppelpunkt ":" null oder mehr "Magische Signatur"-Buchstaben (die optional durch einen weiteren Doppelpunkt ":" beendet werden), und der Rest ist das Muster, das gegen den Pfad abgeglichen wird. Die "Magische Signatur" besteht aus ASCII-Symbolen, die weder alphanumerisch, noch Glob- oder Regex-Sonderzeichen, noch Doppelpunkte sind. Der optionale Doppelpunkt, der die "Magische Signatur" beendet, kann weggelassen werden, wenn das Muster mit einem Zeichen beginnt, das nicht zur Menge der "Magische Signatur"-Symbole gehört und kein Doppelpunkt ist.
In der Langform folgt auf den führenden Doppelpunkt ":" eine öffnende Klammer "(", eine durch Kommas getrennte Liste von null oder mehr "Magischen Wörtern" und eine schließende Klammer ")", und der Rest ist das Muster, das gegen den Pfad abgeglichen wird.
Eine Pfadangabe, die nur aus einem Doppelpunkt besteht, bedeutet "keine Pfadangabe". Diese Form sollte nicht mit anderen Pfadangaben kombiniert werden.
- top
-
Das magische Wort
top(magische Signatur:/) bewirkt, dass das Muster vom Stammverzeichnis des Arbeitsverzeichnisses aus abgeglichen wird, selbst wenn Sie den Befehl aus einem Unterverzeichnis ausführen. - literal
-
Platzhalter im Muster wie
*oder?werden als literale Zeichen behandelt. - icase
-
Groß-/Kleinschreibung ignorierender Abgleich.
- glob
-
Git behandelt das Muster als Shell-Glob, das für die Verwendung mit fnmatch(3) mit dem FNM_PATHNAME-Flag geeignet ist: Platzhalter im Muster passen nicht zu einem / im Pfadnamen. Zum Beispiel stimmt "Documentation/*.html" mit "Documentation/git.html" überein, aber nicht mit "Documentation/ppc/ppc.html" oder "tools/perf/Documentation/perf.html".
Zwei aufeinanderfolgende Sternchen ("
**") in Mustern, die gegen vollständige Pfadnamen abgeglichen werden, können eine besondere Bedeutung haben-
Ein führendes "
**" gefolgt von einem Schrägstrich bedeutet, dass in allen Verzeichnissen gesucht wird. Zum Beispiel stimmt "**/foo" mit der Datei oder dem Verzeichnis "foo" überall überein. "**/foo/bar" stimmt mit der Datei oder dem Verzeichnis "bar" überall überein, das sich direkt unter dem Verzeichnis "foo" befindet. -
Ein abschließendes "
/**" passt auf alles darin. Zum Beispiel passt "abc/**" auf alle Dateien im Verzeichnis "abc", relativ zum Speicherort der.gitignore-Datei, mit unendlicher Tiefe. -
Ein Schrägstrich gefolgt von zwei aufeinanderfolgenden Sternchen und dann einem Schrägstrich passt zu null oder mehr Verzeichnissen. Zum Beispiel passt "
a/**/b" zu "a/b", "a/x/b", "a/x/y/b" und so weiter. -
Andere aufeinanderfolgende Sternchen gelten als ungültig.
Glob-Magie ist mit Literal-Magie inkompatibel.
-
- attr
-
Nach
attr:folgt eine durch Leerzeichen getrennte Liste von "Attributanforderungen", die alle erfüllt sein müssen, damit der Pfad als übereinstimmend gilt; dies zusätzlich zur üblichen nicht-magischen Pfadangabenmusterübereinstimmung. Siehe gitattributes[5].Jede der Attributanforderungen für den Pfad hat eine der folgenden Formen:
-
"
ATTR" erfordert, dass das AttributATTRgesetzt ist. -
"
-ATTR" erfordert, dass das AttributATTRnicht gesetzt ist. -
"
ATTR=VALUE" erfordert, dass das AttributATTRauf den StringVALUEgesetzt ist. -
"
!ATTR" erfordert, dass das AttributATTRnicht spezifiziert ist.Beachten Sie, dass bei der Übereinstimmung mit einem Baumobjekt Attribute immer noch aus dem Arbeitsverzeichnis bezogen werden, nicht aus dem gegebenen Baumobjekt.
-
- ausschließen
-
Nachdem ein Pfad mit einer nicht-ausschließenden Pfadangabe übereinstimmt, wird er durch alle ausschließenden Pfadangaben (magische Signatur:
!oder ihr Synonym^) geleitet. Wenn er übereinstimmt, wird der Pfad ignoriert. Wenn keine nicht-ausschließende Pfadangabe vorhanden ist, wird der Ausschluss auf das Ergebnis angewendet, als ob er ohne Pfadangabe aufgerufen worden wäre.
-
- Elternteil
-
Ein Commit-Objekt enthält eine (möglicherweise leere) Liste der logischen Vorgänger im Entwicklungsstrang, d. h. seiner Eltern.
- Schälen
-
Die Aktion des rekursiven Dereferenzierens eines Tag-Objekts.
- Pickaxe
-
Der Begriff Pickaxe bezieht sich auf eine Option der Diffcore-Routinen, die hilft, Änderungen auszuwählen, die eine bestimmte Textzeichenkette hinzufügen oder löschen. Mit der Option
--pickaxe-allkann es verwendet werden, um den gesamten Änderungssatz anzuzeigen, der z. B. eine bestimmte Textzeile eingeführt oder entfernt hat. Siehe git-diff[1]. - Plumbing
-
Ein niedlicher Name für Core Git.
- Porcelain
-
Ein niedlicher Name für Programme und Programmsuiten, die auf Core Git aufbauen und einen hochrangigen Zugriff auf Core Git bieten. Porcelains bieten mehr eine SCM-Schnittstelle als das Plumbing.
- pro-Arbeitsverzeichnis-Referenz
-
Referenzen, die pro Arbeitsverzeichnis gelten, anstatt global. Dies sind derzeit nur HEAD und alle Referenzen, die mit
refs/bisect/beginnen, können aber später auch andere ungewöhnliche Referenzen umfassen. - Pseudoreferenz
-
Eine Referenz, die andere Semantik als normale Referenzen hat. Diese Referenzen können über normale Git-Befehle gelesen werden, aber nicht mit Befehlen wie git-update-ref[1] geschrieben werden.
Die folgenden Pseudoreferenzen sind Git bekannt:
-
FETCH_HEADwird von git-fetch[1] oder git-pull[1] geschrieben. Sie kann sich auf mehrere Objekt-IDs beziehen. Jede Objekt-ID ist mit Metadaten annotiert, die angeben, von wo sie abgerufen wurde und ihren Abrufstatus. -
MERGE_HEADwird von git-merge[1] beim Auflösen von Merge-Konflikten geschrieben. Sie enthält alle Commit-IDs, die gemergt werden.
-
- Pull
-
Einen Branch zu ziehen bedeutet, ihn abzurufen und zu mergen. Siehe auch git-pull[1].
- Push
-
Einen Branch zu pushen bedeutet, die Head-Referenz des Branches aus einem Remote-Repository abzurufen, zu prüfen, ob sie ein Vorfahre der lokalen Head-Referenz des Branches ist, und in diesem Fall alle Objekte, die von der lokalen Head-Referenz erreichbar sind und die im Remote-Repository fehlen, in die Remote-Objekt-Datenbank zu legen und die Remote-Head-Referenz zu aktualisieren. Wenn der Remote-Head kein Vorfahre des lokalen Heads ist, schlägt der Push fehl.
- erreichbar
-
Alle Vorfahren eines gegebenen Commits gelten als von diesem Commit "erreichbar". Allgemeiner gesagt ist ein Objekt von einem anderen erreichbar, wenn wir von einem zum anderen durch eine Kette gelangen können, die Tags zu dem verfolgt, was sie taggen, Commits zu ihren Eltern oder Bäumen und Bäume zu den Bäumen oder Blobs, die sie enthalten.
- Erreichbarkeits-Bitmaps
-
Erreichbarkeits-Bitmaps speichern Informationen über die Erreichbarkeit eines ausgewählten Satzes von Commits in einem Packfile oder einem Multi-Pack-Index (MIDX), um die Objektsuche zu beschleunigen. Die Bitmaps werden in einer ".bitmap"-Datei gespeichert. Ein Repository kann höchstens eine Bitmap-Datei verwenden. Die Bitmap-Datei kann entweder zu einem Pack oder zum Multi-Pack-Index des Repositorys gehören (falls vorhanden).
- Rebase
-
Eine Reihe von Änderungen aus einem Branch auf einer anderen Basis neu anzuwenden und den Head dieses Branches auf das Ergebnis zurückzusetzen.
- Referenz
-
Ein Name, der auf einen Objektnamen oder eine andere Referenz zeigt (letztere wird als symbolische Referenz bezeichnet). Der Einfachheit halber kann eine Referenz bei der Verwendung als Argument für einen Git-Befehl manchmal abgekürzt werden; siehe gitrevisions[7] für Details. Referenzen werden im Repository gespeichert.
Der Referenz-Namensraum ist hierarchisch. Referenznamen müssen entweder mit
refs/beginnen oder sich im Stammverzeichnis der Hierarchie befinden. Für letztere müssen ihre Namen die folgenden Regeln befolgen-
Der Name besteht nur aus Großbuchstaben oder Unterstrichen.
-
Der Name endet mit "
_HEAD" oder ist gleich "HEAD".Es gibt einige unregelmäßige Referenzen im Stammverzeichnis der Hierarchie, die diesen Regeln nicht entsprechen. Die folgende Liste ist erschöpfend und sollte in Zukunft nicht erweitert werden
-
AUTO_MERGE -
BISECT_EXPECTED_REV -
NOTES_MERGE_PARTIAL -
NOTES_MERGE_REF -
MERGE_AUTOSTASHVerschiedene Unterhierarchien werden für unterschiedliche Zwecke verwendet. Zum Beispiel wird die Hierarchie
refs/heads/verwendet, um lokale Branches darzustellen, während die Hierarchierefs/tags/verwendet wird, um lokale Tags darzustellen.
-
- Reflog
-
Ein Reflog zeigt die lokale "Historie" einer Referenz. Mit anderen Worten, es kann Ihnen sagen, was die 3. letzte Revision in *diesem* Repository war und was gestern um 21:14 Uhr der aktuelle Zustand in *diesem* Repository war. Einzelheiten finden Sie unter git-reflog[1].
- Refspec
-
Ein "Refspec" wird von fetch und push verwendet, um die Zuordnung zwischen Remote-Referenzen Referenz und lokalen Referenzen zu beschreiben. Einzelheiten finden Sie unter git-fetch[1] oder git-push[1].
- Remote-Repository
-
Ein Repository, das zur Nachverfolgung desselben Projekts verwendet wird, aber woanders residiert. Zur Kommunikation mit Remotes siehe fetch oder push.
- Remote-Tracking-Branch
-
Eine Referenz, die verwendet wird, um Änderungen von einem anderen Repository zu verfolgen. Sie sieht typischerweise so aus: refs/remotes/foo/bar (was darauf hindeutet, dass sie einen Branch namens bar in einem Remote namens foo verfolgt) und entspricht der rechten Seite eines konfigurierten Fetch-Refspecs Refspec. Ein Remote-Tracking-Branch sollte keine direkten Modifikationen enthalten oder lokale Commits darauf gemacht haben.
- Repository
-
Eine Sammlung von Referenzen zusammen mit einer Objektdatenbank, die alle Objekte enthält, die von den Referenzen erreichbar sind, möglicherweise ergänzt durch Metadaten aus einem oder mehreren Porcelains. Ein Repository kann eine Objektdatenbank über den Mechanismus Alternates mit anderen Repositories teilen.
- Auflösen
-
Die Aktion, manuell zu beheben, was ein fehlgeschlagener automatischer Merge hinterlassen hat.
- Revision
-
Synonym für Commit (das Nomen).
- Zurückspulen
-
Teile der Entwicklung verwerfen, d.h. den Head auf eine frühere Revision setzen.
- SCM
-
Source Code Management (Werkzeug).
- SHA-1
-
"Secure Hash Algorithm 1"; eine kryptografische Hash-Funktion. Im Kontext von Git als Synonym für Objektname verwendet.
- Shallow Clone
-
Größtenteils ein Synonym für Shallow Repository, aber der Ausdruck macht deutlicher, dass es durch Ausführen des Befehls
git clone --depth=...erstellt wurde. - Shallow Repository
-
Ein flaches Repository hat eine unvollständige Historie, von der einige Commits ihre Eltern "verätzt" haben (mit anderen Worten, Git wird angewiesen, so zu tun, als hätten diese Commits keine Eltern, obwohl sie im Commit-Objekt aufgezeichnet sind). Dies ist manchmal nützlich, wenn Sie nur an der jüngsten Historie eines Projekts interessiert sind, obwohl die tatsächliche Historie, die im Upstream aufgezeichnet ist, viel größer ist. Ein flaches Repository wird erstellt, indem die Option
--depthan git-clone[1] übergeben wird, und seine Historie kann später mit git-fetch[1] vertieft werden. - Stash-Eintrag
-
Ein Objekt, das verwendet wird, um den Inhalt eines unsauberen Arbeitsverzeichnisses und des Index für die zukünftige Wiederverwendung vorübergehend zu speichern.
- Submodul
-
Ein Repository, das die Historie eines separaten Projekts innerhalb eines anderen Repositorys enthält (letzteres wird als Superprojekt bezeichnet).
- Superprojekt
-
Ein Repository, das Repositories anderer Projekte in seinem Arbeitsbaum als Submodule referenziert. Das Superprojekt kennt die Namen von (hält aber keine Kopien davon) Commit-Objekten der enthaltenen Submodule.
- Symbolische Referenz
-
Symbolische Referenz: Anstatt die SHA-1-ID selbst zu enthalten, hat sie das Format ref: refs/some/thing und wird beim Referenzieren rekursiv zu dieser Referenz dereferenziert. HEAD ist ein Paradebeispiel für eine symbolische Referenz. Symbolische Referenzen werden mit dem Befehl git-symbolic-ref[1] manipuliert.
- Tag
-
Eine Referenz im Namensraum
refs/tags/, die auf ein Objekt eines beliebigen Typs zeigt (typischerweise zeigt ein Tag entweder auf ein Tag-Objekt oder ein Commit-Objekt). Im Gegensatz zu einem Head wird ein Tag nicht durch den Befehlcommitaktualisiert. Ein Git-Tag hat nichts mit einem Lisp-Tag zu tun (das im Git-Kontext als Objekttyp bezeichnet würde). Ein Tag wird typischerweise verwendet, um einen bestimmten Punkt in der Commit-Abstammungskette Kette zu markieren. - Tag-Objekt
-
Ein Objekt, das eine Referenz enthält, die auf ein anderes Objekt zeigt, welches eine Nachricht wie ein Commit-Objekt enthalten kann. Es kann auch eine (PGP-)Signatur enthalten, in diesem Fall wird es als "signiertes Tag-Objekt" bezeichnet.
- Themen-Branch
-
Ein regulärer Git Branch, der von einem Entwickler verwendet wird, um eine konzeptionelle Entwicklungslinie zu identifizieren. Da Branches sehr einfach und kostengünstig sind, ist es oft wünschenswert, mehrere kleine Branches zu haben, die jeweils sehr gut definierte Konzepte oder kleine inkrementelle, aber verwandte Änderungen enthalten.
- Trailer
-
Schlüssel-Wert-Metadaten. Trailer finden sich optional am Ende einer Commit-Nachricht. Können in anderen Communities auch als "Footer" oder "Tags" bezeichnet werden. Siehe git-interpret-trailers[1].
- Tree
-
Entweder ein Arbeitsbaum oder ein Tree-Objekt zusammen mit den abhängigen Blob- und Tree-Objekten (d.h. eine gespeicherte Darstellung eines Arbeitsbaums).
- Tree-Objekt
-
Ein Objekt, das eine Liste von Dateinamen und Modi zusammen mit Referenzen auf die zugehörigen Blob- und/oder Tree-Objekte enthält. Ein Tree ist gleichbedeutend mit einem Verzeichnis.
- Tree-ish (auch treeish)
-
Ein Tree-Objekt oder ein Objekt, das rekursiv zu einem Tree-Objekt dereferenziert werden kann. Das Dereferenzieren eines Commit-Objekts ergibt das Tree-Objekt, das dem obersten Verzeichnis der Revision entspricht. Die folgenden sind alle Tree-ishes: ein Commit-ish, ein Tree-Objekt, ein Tag-Objekt, das auf ein Tree-Objekt zeigt, ein Tag-Objekt, das auf ein Tag-Objekt zeigt, das auf ein Tree-Objekt zeigt, usw.
- Ungeboren
-
Der HEAD kann auf einen Branch zeigen, der noch nicht existiert und auf dem noch kein Commit vorhanden ist; ein solcher Branch wird als ungeborener Branch bezeichnet. Die typischste Art, wie Benutzer auf einen ungeborenen Branch stoßen, ist die Neuerstellung eines Repositorys, ohne von woanders zu klonen. Der HEAD würde auf den main (oder master, je nach Konfiguration) Branch zeigen, der noch geboren werden muss. Auch einige Operationen können Sie mit ihrer Orphan-Option auf einen ungeborenen Branch bringen.
- Unmerged Index
-
Ein Index, der ungemergte Index-Einträge enthält.
- Unerreichbares Objekt
-
Ein Objekt, das von keinem Branch, Tag oder einer anderen Referenz erreichbar ist.
- Upstream-Branch
-
Der Standard- Branch, der in den fraglichen Branch gemergt wird (oder auf den der fragliche Branch gerebased wird). Er wird über branch.<name>.remote und branch.<name>.merge konfiguriert. Wenn der Upstream-Branch von *A* origin/B ist, sagen wir manchmal "A verfolgt origin/B".
- Arbeitsbaum
-
Der Baum der tatsächlich ausgecheckten Dateien. Der Arbeitsbaum enthält normalerweise den Inhalt des Trees des HEAD-Commits plus alle lokalen Änderungen, die Sie vorgenommen, aber noch nicht committet haben.
- Worktree
-
Ein Repository kann null (d.h. ein Bare-Repository) oder ein oder mehrere Worktrees haben, die daran angehängt sind. Ein "Worktree" besteht aus einem "Arbeitsbaum" und Repository-Metadaten, von denen die meisten mit anderen Worktrees eines einzelnen Repositorys geteilt werden, und einige davon werden pro Worktree separat verwaltet (z. B. der Index, HEAD und Pseudoreferenzen wie MERGE_HEAD, pro-Worktree-Referenzen und pro-Worktree-Konfigurationsdatei).
GIT
Teil der git[1] Suite