Ich arbeite derzeit mit einem Repository mit mehreren Zweigen.
Bezieht sich dieses Tag beim Erstellen eines Tags auf den dann aktuellen Zweig?
Mit anderen Worten: Muss ich bei jedem Erstellen eines Tags zum gewünschten Zweig und Tag innerhalb dieses Zweigs wechseln, damit sich das Tag zu diesem Zeitpunkt auf diesen Zweig bezieht?
Tags und Verzweigungen haben keine Beziehung zueinander, da Tags auf ein bestimmtes Commit verweisen und Verzweigung ein bewegender Verweis auf das letzte Commit eines Verlaufs ist. Zweige gehen, Tags bleiben.
Wenn Sie also ein Commit markieren, ist es git egal, welches Commit oder welcher Zweig ausgecheckt ist, wenn Sie ihm den SHA1 von dem bereitstellen, was Sie markieren möchten.
Ich kann sogar taggen, indem ich mich auf einen Zweig beziehe (er markiert dann die Spitze des Zweigs) und später sagen, dass sich die Spitze des Zweigs an einer anderen Stelle befindet (mit
git reset --hard
zum Beispiel), oder den Zweig löschen. Das von mir erstellte Tag wird jedoch nicht verschoben.quelle
Wenn Sie nur anrufen
git tag <TAGNAME>
ohne zusätzliche Parameter , erstellt Git ein neues Tag aus Ihrem aktuellen HEAD (dh dem HEAD Ihres aktuellen Zweigs). Wenn Sie diesem Zweig zusätzliche Commits hinzufügen, hält der Zweig HEAD mit diesen neuen Commits Schritt, während sich das Tag immer auf dasselbe Commit bezieht.Beim Aufruf können
git tag <TAGNAME> <COMMIT>
Sie sogar angeben, welches Commit zum Erstellen des Tags verwendet werden soll.Unabhängig davon ist ein Tag immer noch einfach ein "Zeiger" auf ein bestimmtes Commit (kein Zweig).
quelle
Wir können ein Tag für ein früheres Commit erstellen:
z.B:
quelle
Wenn Sie den Zweig markieren möchten, in dem Sie sich befinden, geben Sie Folgendes ein:
und schieben Sie den Zweig mit:
quelle
Wenn Sie ein Tag aus einem Zweig erstellen möchten, der so etwas wie
release/yourbranch
etc ist, sollten Sie so etwas wie verwendenWenn Sie das Tag nach dem Erstellen des richtigen Tags auf die Fernbedienung übertragen möchten, verwenden Sie den Befehl
quelle