Modifica il nome di un ramo in un repository Git


295

Come rinominare un ramo esistente in un repository Git?

Voglio che il ramo attuale abbia un nuovo nome.


2
accetta una risposta @Alex o dì perché non vuoi accettarla.
Charlie Parker,

1
@CharlieParker Probabilmente ha qualcosa a che fare con il fatto che questa era l'unica domanda di Alex, e probabilmente non ha effettuato l'accesso da: "Ultimo accesso il 3 febbraio 11 alle 21:29"
yellow-saint

13
@JB OMG stai dicendo che gli potrebbe essere successo qualcosa ??? !!!!!!!!!
circa

1
La risposta altamente votata a questo potrebbe essere accettata?
Steve Chambers,

Risposte:


465

Supponendo che tu sia attualmente nel ramo che vuoi rinominare:

git branch -m newname

Questo è documentato nel manuale per git-branch, che è possibile visualizzare utilizzando

man git-branch

o

git help branch

In particolare, il comando è

git branch (-m | -M) [<oldbranch>] <newbranch>

dove i parametri sono:

   <oldbranch>
       The name of an existing branch to rename.

   <newbranch>
       The new name for an existing branch. The same restrictions as for <branchname> apply.

<oldbranch> è facoltativo, se si desidera rinominare il ramo corrente.


10
O git branch -m other-branch renamed-other-branchse non lo sei.
mipadi,

32
Inoltre, se hai spostato il vecchio ramo su un telecomando, puoi eliminarlo con git push origin :branchname. Ciò ti permetterebbe di spingere il nuovo ed eliminare quello vecchio, essenzialmente rinominandolo sul telecomando.
Jonathan,

1
@mipadi, crea il nuovo ramo e non cancella il precedente.
Mohammad Arif,

git branch (-m | -M) [<oldbranch>] <newbranch> Non ha funzionato per me, dando l'errore di sintassi.
Mohammad Arif,

@MohammedArif Con -m, si rinomina il vecchio ramo, in modo da non cancellare quello precedente.
Richard Fearn,

177

Se sei attualmente nel ramo che vuoi rinominare:

git branch -m new_name 

O altro:

git branch -m old_name new_name 

Puoi verificare con:

git branch -a

Come puoi vedere, solo il nome locale è cambiato ora, per cambiare il nome anche nel telecomando devi fare:

git push origin :old_name

Questo rimuove il ramo, quindi caricalo con il nuovo nome:

git push origin new_name

Fonte: https://web.archive.org/web/20150929104013/http://blog.changecong.com:80/2012/10/rename-a-remote-branch-on-github


13
Penso che questa sia la risposta corretta, la risposta molto votata da Richard Feam copre solo i repository locali, questa copre il telecomando.
user1145404,

4
Concordato con il commento sopra, questa risposta è stata più completa nel mio caso. Inoltre, quando ho inviato ulteriori commit al ramo remoto dopo aver eseguito tutti i passaggi indicati in questa risposta, git ha provato a spingere di old_namenuovo al ramo. Fortunatamente, git ha fornito anche una correzione nella riga di comando: git-branch --unset-upstream. Dopo questo, tutti gli commit spinti sono andati al new_nameramo remoto.
Hans Roerdinkholder,

2
attenzione che in questo modo hai perso la facoltà di insistere git pushperché hai un avvertimento che dice Your branch is based on 'old_name, but the upstream is gone.A git push -u origin new_namerisolverlo.
netalex,
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.