Wir sind neu in Git und ich möchte ein Tag am Anfang unseres Repositorys setzen. Unser Produktionscode ist der gleiche wie das anfängliche Repository, aber wir haben seitdem Commits gemacht. Ein Tag am Anfang würde es uns ermöglichen, die Produktion auf einen bekannten, stabilen Zustand zurückzusetzen.
Wie füge ich einem beliebigen, älteren Commit ein Tag hinzu?
git
version-control
git-tag
hogsolo
quelle
quelle
Antworten:
Beispiel:
Wo
9fceb02
ist der Anfang der Commit-ID?Sie können das Tag dann mit verschieben
git push origin v1.2
.Sie können
git log
alle Commit-IDs in Ihrem aktuellen Zweig anzeigen.Es gibt auch ein gutes Kapitel zum Markieren im Pro Git-Buch.
Warnung: Dadurch werden Tags mit dem aktuellen Datum erstellt (und dieser Wert wird beispielsweise auf einer GitHub-Veröffentlichungsseite angezeigt). Wenn Sie möchten, dass das Tag mit dem Festschreibungsdatum datiert wird, sehen Sie sich bitte eine andere Antwort an .
quelle
-a
und die-m "Message here"
Teile weg, wenn Sie keine Nachricht hinzufügen möchten:git tag v1.2 9fceb02
-a
und-m
. Die Manpage scheint zu sagen, dass-a
impliziert ist, wann-m
verwendet wird.git push --tags origin master
würde alle Tags auf dem lokalen Zweig auf Remote verschieben. Ziehen Sie es vorgit push origin <tag_name>
, nur das erstellte Tag zu verschieben. Siehe: stackoverflow.com/a/5195913/452708 , git-scm.com/book/en/v2/Git-Basics-TaggingNur der Code
Einzelheiten
Die Antwort von @dkinzer erstellt Tags, deren Datum das aktuelle Datum ist (als Sie den
git tag
Befehl ausgeführt haben), nicht das Datum des Commits. Die Git-Hilfe fürtag
hat einen Abschnitt "On Backdating Tags", der besagt:Die Seite "Wie man in Git taggt" zeigt uns, dass wir die Zeit des HEAD-Commits extrahieren können über:
Wir könnten das Datum eines bestimmten Commits extrahieren über:
Anstatt das Festschreiben zweimal zu wiederholen, scheint es jedoch einfacher zu sein, den HEAD einfach in dieses Festschreiben zu ändern und es implizit in beiden Befehlen zu verwenden:
quelle
Der einfachste Weg, dies zu tun, ist:
mit
f4ba1fc
wobei der Beginn der Hash - Wert des begehen möchten Sie Tag undv1.0.0
ist die Version , die Sie Tag möchten.quelle
Befehl verwenden:
Dabei ist v1.0 der Tag-Name und ec32d32 das Commit, das Sie markieren möchten
Sobald Sie fertig sind, können Sie die Tags verschieben durch:
Referenz:
Git (Revisionskontrolle): Wie kann ich einen bestimmten vorherigen Festschreibungspunkt in GitHub markieren?
quelle
OK , Sie können einfach tun:
Wenn Sie also Tag: 1.0.2 zum Festschreiben hinzufügen möchten,
e50f795
tun Sie einfach Folgendes:Außerdem fügen Sie am Ende eine Nachricht hinzu , indem Sie Folgendes verwenden
-m
:Schließlich müssen Sie es auf die schieben, um das
remote
zu tun, tun Sie einfach:Wenn Sie viele Tags haben, die Sie nicht einzeln erwähnen möchten, tun Sie einfach Folgendes:
alle Tags zusammenschieben ...
Außerdem habe ich die Schritte im Bild unten erstellt, um die Schritte genauer zu erläutern:
Sie können das Tag auch in Hub oder mithilfe von Tools wie SourceTree ausführen . Um die vorherigen Schritte zu vermeiden, habe ich mich in diesem Fall bei meinem Bitbucket angemeldet und dies von dort aus getan:
No tags
und klicken Sie auf das+
Symbol:quelle
Dies ist eine alte Frage, und die Antworten haben bereits alle Arbeit gegeben, aber es gibt auch eine neue Option, die in Betracht gezogen werden kann.
Wenn Sie SourceTree zum Verwalten Ihrer Git-Repositorys verwenden, können Sie mit der rechten Maustaste auf ein Commit klicken und ihm ein Tag hinzufügen. Mit einem weiteren Mausklick können Sie das Tag auch direkt an den Zweig am Ursprung senden.
quelle
Aufbauend auf den Antworten der anderen ist hier eine Einzeiler-Lösung, die das Tag-Datum auf den Zeitpunkt festlegt, an dem es tatsächlich passiert ist, ein kommentiertes Tag verwendet und Folgendes erfordert
git checkout
:Dabei
tag
wird die gewünschte Tag-Zeichenfolge undcommit
der Commit-Hash festgelegt.quelle
Die Antwort von @Phrogz ist großartig, funktioniert aber unter Windows nicht. So kennzeichnen Sie ein altes Commit mit Powershell mit dem ursprünglichen Datum des Commits:
quelle