git-branch commit to - Como renomeio um branch Git local?





15 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 ."

rename bitbucket and

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?




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



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



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



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.




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 desanimo isso, para a segurança de sua mente.




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 ...".




  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




Mudar o ramo localmente é muito fácil ...

Se você está no ramo que você deseja alterar o nome, basta fazer isso:

git branch -m my_new_branch

Caso contrário, se você estiver no master ou em qualquer outro ramo diferente daquele que você gostaria de mudar o nome, simplesmente faça:

git branch -m my_old_branch my_new_branch

Além disso, eu crio a imagem abaixo para mostrar isso em ação em uma linha de comando , neste caso, você está no branch master , por exemplo:




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



Maneira simples de fazer isso:

git branch -m old_branch new_branch         # Rename branch locally    
git push origin :old_branch                 # Delete the old branch    
git push --set-upstream origin new_branch   # Push the new branch, set local branch to track the new remote

Para mais, veja this .




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,

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$ 



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



git branch -m old_branch_name  new_branch_name

ou

git branch --move old_branch_name new_branch_name



Related