Como renomeio um branch Git local?



14 Answers

git branch -m old_branch_name new_branch_name

O comando acima irá alterar o nome da sua ramificação, mas você deve ter muito cuidado ao usar a ramificação renomeada, porque ela ainda se referirá à ramificação antiga da upstream associada a ela, se houver.

Se você quiser enviar algumas alterações para o mestre depois que sua ramificação local for renomeada para new_branch_name (nome do exemplo):

git push origin new_branch_name:master (agora as alterações irão para master branch, mas o nome da sua filial local é new_branch_name)

Para mais detalhes, consulte " Como renomear o nome da sua filial local no Git ."

Question

Não quero renomear uma ramificação remota, conforme descrito em Renomear Ramificação Principal para os Repositórios Git Locais e Remotos .

Como posso renomear uma ramificação local que não foi enviada para uma ramificação remota?




Tentando responder especificamente à pergunta (pelo menos o título).

Você também pode renomear ramificação local , mas continua rastreando o nome antigo no controle remoto.

git branch -m old_branch new_branch
git push --set-upstream origin new_branch:old_branch

Agora, quando você executa o git push , o ref remoto old_branch é atualizado com o seu new_branch local.

Você precisa conhecer e lembrar dessa configuração. Mas pode ser útil se você não tem escolha para o nome da ramificação remota, mas você não gosta (oh, quero dizer, você tem uma razão muito boa para não gostar!) E prefere um nome mais claro. nome para o seu ramo local.

Jogando com a configuração de busca, você pode até renomear a referência remota local. ou seja, ter um ponteiro refs/remote/origin/new_branch ref para o ramo, que é de fato o old_branch na origin . No entanto, eu desestimulo isso, para a segurança de sua mente.




Aqui estão os passos para mudar o nome do ramo:

1. switch to branch which needs to be renamed
2. git branch -m <new_name>
3. git push origin :<old_name>
4. git push origin <new_name>:refs/heads/<new_name>

EDIT (12/01/2017): Certifique-se de executar o comando git status e de verificar se o ramo recém-criado está apontando para seu próprio ref e não para o mais antigo. Se você encontrar a referência para o ramo mais antigo, você precisa cancelar o upstream usando:

git branch --unset-upstream



Outra opção é não usar a linha de comando. Os clientes GUI do Git, como o SourceTree tiram grande parte da curva de aprendizado / dor sintática que faz com que perguntas como essa sejam as mais vistas no .

No SourceTree, clique com o botão direito do mouse em qualquer ramificação local no painel "Ramificações" à esquerda e selecione "Renomear ...".




As respostas até agora foram corretas, mas aqui estão algumas informações adicionais: é possível renomear uma ramificação com '-m' (mover), mas é preciso ter cuidado, porque '-M' força a renomeação, mesmo que exista uma ramo com o mesmo nome já. Aqui está o trecho da página do manual 'git-branch':

Com uma opção -m ou -M, <oldbranch> será renomeado para <newbranch> . Se <oldbranch> tiver um reflog correspondente, ele será renomeado para corresponder a <newbranch> e uma entrada reflog será criada para lembrar a renomeação da ramificação. Se <newbranch> existir, -M deve ser usado para forçar a renomeação.




Eu insensatamente nomeei um ramo começando com um hífen e, em seguida, verifiquei o mestre. Eu não queria deletar minha filial, tinha trabalho nela.

Nenhum desses funcionou:

git checkout -dumb-name

git checkout -- -dumb-name

" s, s e \ s também não ajudaram. git branch -m não funciona.

Aqui está como eu finalmente consertei. Vá para a sua cópia de trabalho .git / refs / heads, encontre o nome do arquivo "-dumb-name", pegue o hash do branch. Em seguida, isso será verificado, criará uma nova ramificação com um nome sã e excluirá a antiga.

git checkout {hash}
git checkout -b brilliant-name
git branch -d -- -dumb-name



  1. Renomeie seu ramo local.

Se você está no ramo que deseja renomear:

git branch -m new-name

Se você estiver em um ramo diferente:

git branch -m old-name new-name
  1. Exclua a ramificação remota de nome antigo e envie a ramificação local de novo nome.

git push origin :old-name new-name

  1. Redefina a ramificação upstream da ramificação local de novo nome. Mude para o ramo e depois:

git push origin -u new-name

Ou para uma maneira rápida de fazer isso, você pode usar estas três etapas:

# Renomear ramo localmente

git branch -m old_branch new_branch  

# Exclua o ramo remoto antigo

git push origin :old_branch  

# Empurre o novo ramo, defina ramificação local para rastrear o novo controle remoto

git push --set-upstream origin new_branch   

Referências: https://www.w3docs.com/snippets/git/how-to-rename-git-local-and-remote-branches.html




// git branch -m <oldname> <newname>

$ git branch -m demo test

ou

// git branch -m <newname>

$ git branch -m test



Provavelmente, como mencionado por outros, isso será uma incompatibilidade de maiúsculas e minúsculas na nomeação de ramificação.

Se você tiver essa situação, posso imaginar que você está no Windows, o que também o levará a:

$ git branch -m CaseSensitive casesensitive
fatal: A branch named 'casesensitive' already exists.

Então você tem que fazer um passo intermediário:

$ git branch -m temporary
$ git branch -m casesensitive

Nada mais.




git branch rename pode ser feito usando

  1. git branch -m oldBranch newBranch

  2. git branch -M oldBranch ExistingBranch

Diferença entre -m e -M

-m: se você estiver tentando renomear sua ramificação com o nome da ramificação usando -m, isso gerará um erro, dizendo que branch já existe. você precisa dar um nome único.

mas,

-M: isso irá ajudá-lo a forçar a renomeação com nome próprio, mesmo que ele exista. então a filial existente irá substituir completamente ...

Aqui está o exemplo do terminal git,

git push origin -u new_branchname



Renomeie o ramo usando este comando:

git branch -m [old_branch_name] [new_branch_name]

-m : Ele renomeia / move o ramo. Se já houver uma ramificação, você receberá um erro.

Se já houver uma ramificação e você quiser renomear com essa ramificação, use:

 git rename -M [old_branch_name] [new_branch_name]

Para mais informações sobre ajuda, use este comando no terminal:

git branch --help

ou

man git branch



Renomear ramificação:

git branch -m old_branchname new_branchname

aqui O nome longo da opção -m é --move. Então nós também podemos usar

git branch --move old_branchname new_branchname

Se você quiser renomear a ramificação atual, use-a.

mohideen@dev:~/project/myapp/sunithamakeup$ git branch 
  master
  master0
  new_master
  test
* test1
mohideen@dev:~/project/myapp/sunithamakeup$ git branch -m test1 test
fatal: A branch named 'test' already exists.
mohideen@dev:~/project/myapp/sunithamakeup$ git branch -M test1 test
mohideen@dev:~/project/myapp/sunithamakeup$ git branch 
  master
  master0
  new_master
* test
mohideen@dev:~/project/myapp/sunithamakeup$ 

ou

git branch -m new_branchname

Se você quiser mover essas alterações para remoto, use o seguinte.

git branch -move new_branchname

Isso excluirá a ramificação remota old_branchname e enviará a ramificação local new_branchname.

git push origin :old_branchname new_branchname

Isso redefinirá a ramificação upstream da ramificação local new_branchname.




Se você quiser:

  • Renomeie o repositório git, execute: git branch -m <oldname> <newname>
  • Excluir ramificação antiga por: git push origin: old-name new-name
  • Confirme-o usando: git commit <newname>
    • e depois empurre usando: git push origin new_branch_name:master
  • Se você quiser verificar o status, use: git status
  • Se você quiser dar uma olhada, use: git checkout



Como você não quer enviar a ramificação para um servidor remoto, este exemplo será útil:

Digamos que você tenha uma ramificação existente chamada "my-hot-feature" e queira renomeá-la para "feature-15".

Primeiro, você quer mudar seu ramo local. Isso não poderia ser mais fácil:

git branch -m my-hot-feature feature-15

Para obter mais informações, você pode visitar localmente e remotamente renomeando uma ramificação no Git .




Se você quiser alterar o nome do ramo atual, execute:

git branch -m [old_branch] [new_branch]

Se você quiser excluir o ramo remoto antigo, execute:

git push origin :[old_branch]

Se você quiser excluir a ramificação remota antiga e criar uma nova ramificação remota, execute:

git push origin :old_branch new_branch



Related