Was ist ein Git-Versionsausdruck?
So, ich bin mit Git-GUI um ein repository. Aber ich kann nicht finden, JEDE Spur auf Google, in der Dokumentation oder sonstwo, was eine "Revision Expression' ist, und es erforderlich ist, um einen neuen Branch erzeugen.
Auch, es scheint, dass dies noch viele andere stellen im Programm, so dass ich denke, es ist wichtig zu wissen.
Habe ich eine Frage dazu auf StackOverflow, aber der Kerl bekam nie eine Antwort.
Muss ich nur wissen: Was ist eine Überarbeitung von Ausdruck?
Kommentar zu dem Problem
wenn Sie möchten, Zusammenführen von änderungen aus remote auf Ihrem lokalen master (für mich), können Sie geben Sie remote/master
InformationsquelleAutor der Frage Tyler Carter | 2009-08-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
git muss in der Lage sein zu identifizieren, die einen verpflichten, während eine Reihe von gemeinsamen Operationen
Gibt es eine Reihe von Möglichkeiten, um zu identifizieren, zu Begehen. Könnten Sie einen Zweig, tag, commit sha1-oder Ausdrücken. Zum Beispiel:
HEAD
schließlich aufgelöst wird, um eine bestimmte commit, und Sie erhalten das Protokoll für die. Man könnte auch sagen:master
ist ein Zweig, und das wird sich auch lösen, auf einen bestimmten commit.Nun, das IST die eigentliche commit.
Den unten Dokumentation ist das, was Sie suchen. Entnommen aus der
git-rev-parse
Befehl Dokumentation http://www.kernel.org/pub/software/scm/git/docs/git-rev-parse.html.ANGABE REVISIONEN
Einer revision parameter in der Regel, aber nicht notwendigerweise, benennt ein commit-Objekt. Sie verwenden, was heißt eine erweiterte SHA1-syntax. Hier sind verschiedene Möglichkeiten, um Zauber-Objekt-Namen. Die, die in der Nähe des Ende dieser Liste sind Namen von Bäumen und blobs, die in einen commit.
Den full-SHA1-Objekt-name (40-byte-hexadezimal-string), oder eine Teilzeichenkette von Z, dass ist einzigartig in der repository. E. g. dae86e1950b1277e545cee180551750029cfe735 und dae86e beide Namen den gleichen commit-Objekt, wenn es kein anderes Objekt im repository, dessen Objekt name beginnt mit dae86e.
Einer Leistung von git-beschreiben; d.h. ein am nächsten tag, Optional gefolgt von einem Bindestrich und einer Reihe von commits, gefolgt von einem Bindestrich, ein g, und eine abgekürzte name-Objekt.
Einen symbolischen ref name. E. g. master bedeutet in der Regel die commit-Objekt referenziert durch $GIT_DIR/refs/heads/master. Wenn Sie geschehen, haben beide heads/master-und tags - /master -, können Sie Sie explizit sagen: heads/master zu erzählen, git, welche Sie bedeuten. Wenn zweideutig, ist disambiguated durch den ersten match in der folgenden Regeln:
wenn $GIT_DIR/vorhanden ist, das ist, was du meinst (dieser ist in der Regel sinnvoll, nur für den KOPF, FETCH_HEAD, ORIG_HEAD und MERGE_HEAD);
sonst, $GIT_DIR/refs/falls vorhanden;
sonst, $GIT_DIR/refs/tags/falls vorhanden;
sonst, $GIT_DIR/refs/heads/falls vorhanden;
sonst, $GIT_DIR/refs/remotes/falls vorhanden;
sonst, $GIT_DIR/refs/remotes//LEITER, wenn vorhanden.
KOPF-Namen, die Ihre änderungen im working tree basiert. FETCH_HEAD Datensätze von der Filiale abgeholt von einem remote-repository mit Ihrem letzten git-fetch-Aufruf. ORIG_HEAD erstellt durch Befehle, bewegt Sie Ihren KOPF auf drastische Weise zu erfassen, die position des KOPFES, bevor Sie Ihren Betrieb, so dass Sie ändern können, die Spitze des Zweiges zurück zu dem Zustand, bevor Sie lief problemlos. MERGE_HEAD zeichnet die commit(s), die Sie verschmelzen in Ihrer Filiale beim ausführen von git-merge.
Ref gefolgt von dem suffix @ mit einer Datumsangabe eingeschlossen in einem Klammernpaar (z.B. {gestern}, {1 Monat 2 Wochen 3 Tage 1 Stunde 1 Sekunde vor} oder {1979-02-26 18:30:00}) , geben Sie den Wert des ref-auf einen früheren Zeitpunkt. Dieses suffix kann nur verwendet werden, unmittelbar im Anschluss an eine ref name und der ref muss einen bestehenden log ($GIT_DIR/logs/). Beachten Sie, dass diese sucht nach dem Zustand des lokalen ref zu einem bestimmten Zeitpunkt; z.B., was war in Ihrem lokalen master-branch in der vergangenen Woche. Wenn Sie wollen, schauen Sie sich verpflichtet, die während bestimmten Zeiten zu sehen --und da --bis.
Ref gefolgt von dem suffix @ mit einer Ordinalzahl eingeschlossen in einem Klammernpaar (z.B. {1}, {15}) geben Sie die n-te Vorherige Wert des ref. Z.B. master@{1} ist der unmittelbare Vorherige Wert der master, während der master@{5} ist der 5. Wert vor der master. Dieses suffix kann nur verwendet werden, unmittelbar im Anschluss an eine ref name und der ref muss einen bestehenden log ($GIT_DIR/logs/).
Können Sie das @ - Konstrukt mit einem leeren ref-Teil, um zu einer reflog des aktuellen branch. Zum Beispiel, wenn Sie auf die Filiale blabla, dann @{1} bedeutet das gleiche wie blabla@{1}.
Dem speziellen Konstrukt @{ - } bedeutet, dass die th-branch ausgecheckt, bevor das aktuelle.
Suffix ^, die zu einer revision parameter bedeutet, dass der erste Elternteil, dass commit-Objekt. ^ bedeutet, dass der th übergeordneten (d.h. rev^ entspricht rev^1). Als Besondere Regel, rev^0 bedeutet, die sich verpflichten, und wird verwendet, wenn rev ist der Objektname ein tag-Objekt, bezieht sich auf ein commit-Objekt.
Suffix ~, die zu einer revision der parameter heißt, der commit-Objekt, das die th generation grand-Eltern-der benannte commit-Objekt, folgenden nur die ersten Eltern. I. e. rev~3 entspricht rev^^^ das entspricht rev^1^1^1. Siehe unten für eine Darstellung der Verwendung dieser form.
Suffix ^, gefolgt von einer Objekt-Typ-Namen eingeschlossen in Klammernpaar (z.B. v0.99.8^{commit}) bedeutet, dass das Objekt könnte ein tag sein, und dereferenzieren der tag-rekursiv, bis ein Objekt dieses Typs gefunden wird, oder das Objekt kann nicht aufgelöst werden, nicht mehr (in dem Fall, barf). rev^0 früher eingeführt ist ein kurzer hand für die rev^{Begehen}.
Suffix ^, gefolgt von einem leeren Klammernpaar (z.B. v0.99.8^{}) bedeutet, dass das Objekt könnte ein tag sein, und dereferenzieren der tag-rekursiv, bis ein non-object-tag gefunden wird.
Einem Doppelpunkt, gefolgt von einem Schrägstrich, gefolgt von einem text: diese Namen verpflichten, deren commit-Nachricht beginnt mit dem angegebenen text. Dieser name gibt die jüngste passenden verpflichten, die erreichbar ist von jedem ref. Wenn die commit-Nachricht beginnt mit einem !, Sie haben, um zu wiederholen, dass; die spezielle Sequenz :/!, gefolgt von etwas anderes als ! ist reserviert für jetzt.
Suffix : gefolgt von einem Pfad; diese Namen der blob-oder-Baum in der angegebenen Pfad in der tree-ish-Objekt mit dem Namen von dem Teil vor dem Doppelpunkt.
Einem Doppelpunkt, gefolgt von einem Stadium Anzahl (0 bis 3) gefolgt von einem Doppelpunkt, gefolgt von einem Pfad; diese Namen ein blob-Objekt in der index auf den angegebenen Pfad. Fehlende Bühne-Nummer (und den Doppelpunkt folgt, dass es -) Namen ein Stadium 0-Eintrag. Während eines merge, Stufe 1 ist der gemeinsame Vorfahre, Stufe 2 ist der Ziel-branch-version (in der Regel der aktuelle Zweig), und Stufe 3 ist die version aus der Branche zusammengeführt werden kann.
Hier ist eine illustration von Jon Loeliger. Beide Begehen Knoten B und C sind die Eltern von commit Knoten A. Eltern-commits sind geordnet von Links nach rechts.
InformationsquelleAutor der Antwort gahooa
gahooa gibt die umfassende Antwort. Der häufigste Fall:
master
)gitk
odergit log
Willkommen in der wunderbaren Welt von git. TMI ist par für den Kurs...
InformationsquelleAutor der Antwort Norman Ramsey
Einem anderen Fall, bei der Verwendung von Emacs: geben Sie Einfach
Ctrl-x v l
um eine Liste aller Revisionen. Für einen Neuling auf git (aber nicht auf Emacs/CVS) ich war überrascht zu sehen, dass Revisionen werden wie:Es ist definitiv eine erfrischende Abwechslung zu den
Major.minor.bugfix.build
notation.Was mehr (angenehm) überrascht, ist, dass Emacs Griffe git automatisch und ohne Notwendigkeit für mich zu sagen, Sie (über .emacs), die es braucht, um zu verweisen git statt CVS. Ziemlich erstaunlich.
Also, um zusammenzufassen, wenn Emacs fordert eine revision, geben Sie diese einfach 40 hex-stellige Zahl.
InformationsquelleAutor der Antwort WinWin