Come creare un nuovo ramo da un tag?


Risposte:


877

Wow, è stato più facile di quanto pensassi:

git checkout -b newbranch v1.0

53
Corretta. Nota che avresti anche potuto riportare il ramo master al punto del tag congit reset --hard v1.0
wadesworld,

3
Se questo non funziona a causa di "<tag> non è una valida commit" o un errore simile (spesso quando si lavora su un repository comune), si riferiscono a stackoverflow.com/questions/35979642/...
SalmonKiller

6
Il suggerimento di @wadesworld potrebbe funzionare, ma se qualcuno lo legge e non è sicuro al 100% di cosa significhi ripristinare il ramo principale, non farlo .
Nathan Long,

Questa è una risposta migliore che ho trovato qui - stackoverflow.com/a/35979751/3145960
Reaz Murshed

101

Se si desidera semplicemente creare un nuovo ramo senza modificarlo immediatamente, è possibile effettuare le seguenti operazioni:

git branch newbranch v1.0

6
Penso che questa dovrebbe essere la risposta accettata in quanto fa esattamente ciò che è richiesto. La risposta accettata fa qualcos'altro non indicato nella domanda.
Javier Vazquez,

40

Ho usato i seguenti passaggi per creare un nuovo ramo hot fix da un tag.

Sintassi

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

I passaggi per farlo.

  1. git checkout -b NewBranchName v1.0
  2. Apporta modifiche alle versioni pom / release
  3. Cambiamenti di scena
  4. git commit -m "Aggiorna versioni pom per il ramo Hotfix"
  5. Spingi infine il tuo ramo appena creato nel repository remoto.
git push -u origin NewBranchName

Spero che questo possa aiutare.


17

Ho risolto il problema come di seguito 1. Ottieni il tag dal tuo ramo 2. Scrivi sotto il comando

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

oppure puoi fare con altri comandi

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

una volta pronto con il tuo ramo hotfix, è tempo di spostare quel ramo in github, puoi farlo scrivendo sotto il comando

git push --set-upstream origin hotfix_4.4.3

5

La situazione diventa un po 'problematica se vogliamo creare un ramo da un tag con lo stesso nome .

In questo, e in scenari simili, l'importante è sapere: rami e tag sono in realtà file di testo a riga singola nella .git/refsdirectory, e possiamo fare riferimento esplicitamente usando i loro percorsi di seguito .git. I rami sono chiamati qui "teste", per rendere la nostra vita più semplice.

Pertanto, refs/heads/masterè il nome reale ed esplicito del masterramo. Ed refs/tags/cicaè il nome esatto del tag denominato cica.

Il comando corretto per creare un ramo denominato cicadal tag denominato cicaè:

git branch cica refs/tags/cica

4

La mia lista delle filiali (solo master ora)

elenco delle filiali

Il mio elenco di tag (hanno tre tag)

elenco di tag

Passa alla nuova funzione / codec del ramo dal tag opus_codec

git checkout -b feature/codec opus_codec

passare al ramo


2
Non utilizzare schermate se anche il testo copia e incolla è sufficiente.
Peter - Ripristina Monica il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.