Não quero renomear uma ramificação remota, conforme descrito em Renomear ramificação mestre para repositórios Git locais e remotos .
Como posso renomear uma filial local que não foi enviada para uma filial remota?
Caso você precise renomear a ramificação remota também:
Como renomear um nome de ramificação local e remota do Git
fonte
git push -f --mirror
, ele renomeará a ramificação no controle remoto, mas você só deve usar esse método se o controle remoto for apenas uma cópia do seu repositório atual. Veja também esta pergunta: stackoverflow.com/questions/1526794/git-rename-remote-branchpush.default
está configurado. Por padrão (matching
), ele envia para um controle remoto cujo nome corresponde. Você precisaria fazergit push origin <newname>:<oldname>
ou criará uma nova ramificação remota. No entanto, sepush.default
estiver definido comoupstream
, você poderápush origin head
e as coisas irão para o nome antigo no controle remoto.mv
nome para renomear arquivos. A razão para isso é que mover e renomear, em um sistema de arquivos inode baseado em diretório, é totalmente equivalente.-m
opção é--move
, por exemplo,git branch --move master
renomeia o ramo atual para ser chamado de "mestre".O comando acima alterará o nome do seu ramo, mas você deve ter muito cuidado ao usar o ramo renomeado, porque ainda fará referência ao ramo upstream antigo associado a ele, se houver.
Se você deseja inserir algumas alterações no master 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 vão para a filial principal, mas o nome da sua filial local é new_branch_name)Para mais detalhes, consulte " Como renomear o nome da sua filial local no Git ".
fonte
Para renomear sua ramificação atual:
fonte
Aqui estão as etapas para renomear a ramificação:
git branch -m <new_name>
git push origin :<old_name>
git push origin <new_name>:refs/heads/<new_name>
EDIT (12/01/2017): certifique-se de executar o comando
git status
e verifique se o ramo recém-criado está apontando para sua própria referência e não para a mais antiga. Se você encontrar a referência para a ramificação mais antiga, precisará desabilitar o upstream usando:fonte
Renomear a ramificação será útil assim que ela terminar. Então, novas coisas estão chegando e você deseja desenvolver no mesmo ramo em vez de excluí-lo e criar o novo.
Pela minha experiência, para renomear uma filial local e remota no Git, você deve executar as seguintes etapas.
1. Renomeie sua filial local
Se você estiver no ramo que deseja renomear:
Se você estiver em um ramo diferente:
2. Exclua a ramificação remota com nome antigo e pressione a ramificação local com novo nome
3. Redefina a ramificação upstream para a ramificação local com novo nome
fonte
error: dst ref refs/heads/<old-name> receives from more than one src.; error: failed to push some refs to 'git@uri:foo/bar.git'
git push origin :old-name new-name
certo?As respostas até agora estão corretas, mas aqui estão algumas informações adicionais:
É possível renomear com segurança uma ramificação com '-m' (mover), mas é preciso ter cuidado com '-M', porque ela força a renomeação, mesmo que já exista uma ramificação com o mesmo nome. Aqui está o trecho da página do manual 'git-branch':
fonte
-M
sinalizador também é útil para forçar uma renomeação se você estiver apenas corrigindo o caso do nome do ramo, por exemplo, alterandomyBranch
paraMyBranch
. (Com-m
, retornos gitfatal: A branch named 'MyBranch' already exists.
)1. Renomeie
Se é o seu ramo atual, basta fazer
Se for outro ramo que você deseja renomear
2. Acompanhe uma nova ramificação remota
- Se sua ramificação foi enviada por push, depois de renomear, você precisa excluí-la do repositório Git remoto e pedir ao seu novo local para rastrear uma nova ramificação remota:
fonte
Nomeadamente, nomeei um ramo começando com um hífen e depois fiz check-out do mestre. Eu não queria excluir meu ramo, tinha trabalho nele.
Nenhum deles funcionou:
git checkout -dumb-name
git checkout -- -dumb-name
"
s,'
s e\
s não quer ajudar.git branch -m
não funcionaAqui está como eu finalmente consertei. Vá para o arquivo .git / refs / heads da sua cópia de trabalho, encontre o nome do arquivo "-dumb-name" e obtenha o hash do ramo. Então isso fará o check-out, criará um novo ramo com um nome sensato e excluirá o antigo.
fonte
reflog
Para renomear uma ramificação localmente:
Agora você também terá que propagar essas alterações no servidor remoto.
Para enviar alterações da ramificação antiga excluída:
Para enviar alterações de criação de nova ramificação:
fonte
Apenas três etapas para replicar a alteração no nome
remote
e no GitHub:Passo 1
git branch -m old_branchname new_branchname
Passo 2
git push origin :old_branchname new_branchname
etapa 3
git push --set-upstream origin new_branchname
fonte
git push --set-upstream origin new_branchname
que é mencionado na resposta @NomadeRenomeie a ramificação usando este comando:
-m
: Renomeia / move o ramo. Se já houver um ramo, você receberá um erro.Se já existe um ramo e você deseja renomear com esse ramo, use:
Para mais informações sobre ajuda, use este comando no terminal:
ou
fonte
Usuários avançados do Git podem renomear manualmente usando:
fonte
Se você estiver no ramo que deseja renomear:
Se você estiver em um ramo diferente:
git push origin :old-name new-name
git push origin -u new-name
Ou, para uma maneira rápida de fazer isso, você pode usar estas 3 etapas:
# Renomear filial localmente
# Exclua a ramificação remota antiga
# Empurre a nova ramificação, defina a ramificação local para rastrear o novo controle remoto
Referência: https://www.w3docs.com/snippets/git/how-to-rename-git-local-and-remote-branches.html
fonte
Aqui estão três etapas: Um comando que você pode chamar dentro do seu terminal e alterar o nome da filial.
Se você precisar de mais: passo a passo, Como alterar o nome da filial do Git é um bom artigo sobre isso.
fonte
Provavelmente, como mencionado por outros, isso será uma incompatibilidade de caso na nomeação de ramificações.
Se você tiver uma situação dessas, suponho que você esteja no Windows, o que também o levará a:
Então você tem que fazer uma etapa intermediária:
Nada mais.
fonte
-M
vez de-m
fazer esse tipo de "correção de caso", renomear em uma única etapa.Tentando responder especificamente à pergunta (pelo menos o título).
Você também pode renomear a filial local , mas continua acompanhando o nome antigo no controle remoto.
Agora, quando você executa
git push
, aold_branch
referência remota é atualizada com o seu localnew_branch
.Você precisa conhecer e lembrar dessa configuração. Mas pode ser útil se você não tiver a opção de escolher o nome da filial remota, mas não gostar (oh, quero dizer, você tem uma boa razão para não gostar!) E prefere uma opção mais clara nome para sua filial local.
Jogando com a configuração de busca, você pode até renomear a referência remota local. ou seja, ter um
refs/remote/origin/new_branch
ponteiro ref para o ramo, que é de fato oold_branch
ativadoorigin
. No entanto, eu desencorajo isso, para a segurança de sua mente.fonte
Alterar a filial localmente é bastante fácil ...
Se você estiver no ramo para o qual deseja alterar o nome, faça o seguinte:
Caso contrário, se você estiver em
master
ou qualquer outro ramo que não seja o que você deseja alterar o nome, basta:Além disso, eu crio a imagem abaixo para mostrar isso em ação em uma linha de comando . Nesse caso, você está na
master
ramificação, por exemplo:fonte
Se você estiver disposto a usar o SourceTree (que eu recomendo fortemente), clique com o botão direito do mouse no seu ramo e escolha 'Renomear'.
fonte
Para renomear a ramificação atual (exceto o estado HEAD desanexado), você também pode usar este alias:
fonte
Outra opção é não usar a linha de comando. Clientes GUI do Git, como o SourceTree, retiram grande parte da dor / curva de aprendizado sintático que faz com que perguntas como essa estejam entre as mais vistas no Stack Overflow.
No SourceTree, clique com o botão direito do mouse em qualquer ramificação local no painel "Ramificações" à esquerda e selecione "Renomear ...".
fonte
Uma maneira simples de fazer isso:
Para mais, veja isto .
fonte
Como você não deseja enviar a ramificação para um servidor remoto, este exemplo será útil:
Digamos que você tenha um ramo existente chamado "my-hot-feature" e queira renomeá-lo para "feature-15".
Primeiro, você deseja alterar sua filial local. Isso não poderia ser mais fácil:
Para obter mais informações, você pode visitar Renomeando local e remotamente uma filial no Git .
fonte
Git versão 2.9.2
Se você deseja alterar o nome da filial local em que está:
Se você deseja alterar o nome de uma ramificação diferente:
Se você deseja alterar o nome de uma ramificação diferente para um nome que já existe:
Nota: O último comando é destrutivo e renomeará sua ramificação, mas você perderá a ramificação antiga com esse nome e essas confirmações, porque os nomes das ramificações devem ser exclusivos.
fonte
Se você deseja alterar o nome da ramificação atual, execute:
Se você deseja excluir a ramificação remota antiga, execute:
Se você deseja excluir a ramificação remota antiga e criar uma nova ramificação remota, execute:
fonte
A renomeação do ramo Git pode ser feita usando:
git branch -m oldBranch newBranch
git branch -M oldBranch ExistingBranch
A diferença entre -m e -M :
-m: se você estiver tentando renomear sua filial com um nome de filial existente usando -m . Irá gerar um erro dizendo que o ramo já existe. Você precisa dar um nome único.
Mas,
-M: isso ajudará você a forçar a renomeação com um nome, mesmo que exista. Portanto, um ramo existente substituirá inteiramente por ele ...
Aqui está um exemplo de terminal Git,
fonte
Para usuários da GUI do Git, não poderia ser muito mais simples. Na GUI do Git, escolha o nome da ramificação na lista suspensa na caixa de diálogo "Renomear ramificação" criada no item de menu Ramificação: renomear, digite um novo nome e clique em "Renomear". Eu destaquei onde encontrar a lista suspensa.
fonte
Se você quiser:
git branch -m <oldname> <newname>
git push origin: old-name new-name
git commit <newname>
git push origin new_branch_name:master
git status
git checkout
fonte
Todas as respostas anteriores estão falando
git branch -m
. Claro, é fácil de operar, mas, para mim, pode ser um pouco difícil lembrar de outro comando do Git. Então, eu tentei fazer o trabalho pelo comando que eu conhecia. Sim, você pode adivinhar.Eu uso
git branch -b <new_branch_name>
. E se você não quiser salvar o ramo antigo agora, execute-ogit branch -D <old_branch_name>
para removê-lo.Sei que pode ser um pouco tedioso, mas é mais fácil entender e lembrar. Espero que seja útil para você.
fonte
No PhpStorm:
VCS → Git → Ramos ... → Ramos locais → _seu_branch_ → Renomear
fonte
Tudo que você precisa fazer são as três etapas:
fonte