Wie erstelle ich einen neuen Zweig aus einem Tag?

528

Ich möchte einen neuen Hauptzweig aus einem vorhandenen Tag erstellen. Angenommen, ich habe einen Tag v1.0. Wie erstelle ich einen neuen Zweig aus diesem Tag?

Andrew
quelle
Mögliches Duplikat des Checkout GIT-Tags
Greg Bacon

Antworten:

877

Wow, das war einfacher als ich dachte:

git checkout -b newbranch v1.0
Andrew
quelle
53
Richtig. Beachten Sie, dass Sie den Hauptzweig auch einfach auf den Punkt des Tags mitgit reset --hard v1.0
wadesworld
3
Wenn dies nicht funktioniert, weil "<tag> kein gültiges Commit ist" oder ein ähnlicher Fehler vorliegt (häufig bei der Arbeit an einem freigegebenen Repository), lesen
Sie
6
Der Vorschlag von @wadesworld könnte funktionieren, aber wenn jemand dies liest und nicht 100% sicher ist, was es bedeutet, den Hauptzweig zurückzusetzen, tun Sie das nicht .
Nathan Long
Dies ist eine bessere Antwort, die ich hier gefunden habe - stackoverflow.com/a/35979751/3145960
Reaz Murshed
101

Wenn Sie einfach einen neuen Zweig erstellen möchten, ohne ihn sofort zu ändern, können Sie Folgendes tun:

git branch newbranch v1.0
user1069067
quelle
6
Ich denke, dies sollte die akzeptierte Antwort sein, da es genau das tut, was erforderlich ist. Die akzeptierte Antwort bewirkt etwas anderes, was in der Frage nicht angegeben ist.
Javier Vazquez
40

Ich habe die folgenden Schritte verwendet, um einen neuen Hotfix-Zweig aus einem Tag zu erstellen.

Syntax

git checkout -b <New Branch Name> <TAG Name>

Schritte, um es zu tun.

  1. git checkout -b NewBranchName v1.0
  2. Nehmen Sie Änderungen an POM- / Release-Versionen vor
  3. Bühnenwechsel
  4. git commit -m "Pom-Versionen für Hotfix-Zweig aktualisieren"
  5. Schieben Sie schließlich Ihren neu erstellten Zweig in das Remote-Repository.
git push -u origin NewBranchName

Ich hoffe das würde helfen.

Tarun Kumar
quelle
17

Ich habe das Problem wie folgt gelöst: 1. Holen Sie sich das Tag aus Ihrem Zweig. 2. Schreiben Sie den folgenden Befehl

Example: git branch <Hotfix branch> <TAG>
    git branch hotfix_4.4.3 v4.4.3
    git checkout hotfix_4.4.3

oder Sie können mit einem anderen Befehl tun

git checkout -b <Hotfix branch> <TAG>
-b stands for creating new branch to local 

Sobald Sie mit Ihrem Hotfix-Zweig fertig sind, ist es Zeit, diesen Zweig nach Github zu verschieben. Schreiben Sie dazu den folgenden Befehl

git push --set-upstream origin hotfix_4.4.3
Kirtikumar A.
quelle
5

Die Situation wird ein wenig problematisch, wenn wir einen Zweig aus einem Tag mit demselben Namen erstellen möchten .

In diesem und in ähnlichen Szenarien ist es wichtig zu wissen: Zweige und Tags sind eigentlich einzeilige Textdateien im .git/refsVerzeichnis, und wir können sie explizit anhand ihrer Pfade unten referenzieren .git. Zweige werden hier "Köpfe" genannt, um unser Leben einfacher zu machen.

Somit refs/heads/masterist der reale, explizite Name des masterZweigs. Und refs/tags/cicaist der genaue Name des genannten Tags cica.

Der richtige Befehl zum Erstellen eines Zweigs mit dem Namen " cicatag" cicalautet:

git branch cica refs/tags/cica
Peter - Setzen Sie Monica wieder ein
quelle
4

Meine Filialliste ( jetzt nur Master )

Zweigliste

Meine Tag-Liste (habe drei Tags)

Tag-Liste

Wechseln Sie in dem neuen Zweig Feature / Codec von opus_codec Tag

git checkout -b feature/codec opus_codec

zum Zweig wechseln

Eranga
quelle
2
Bitte verwenden Sie keine Screenshots, wenn auch das Kopieren und Einfügen von Text ausreichen würde.
Peter