Eu tenho quatro ramos como mestre -> origem / regacy, FeatureA -> origem / FeatureA. Como você pode ver, digitei o nome errado.
Então, eu quero renomear um nome de filial remota (origem / regacy → origem / legado ou origem / mestre)
Eu tento o comando abaixo:
git remote rename regacy legacy
Mas o console do Git retornou uma mensagem de erro para mim.
error : Could not rename config section 'remote.regacy' to 'remote.legacy'
Como posso resolver este problema?
git
repository
rename
git-branch
JayD
fonte
fonte
Respostas:
Existem algumas maneiras de conseguir isso:
Renomeando local e remoto
Renomeando apenas ramificação remota
Crédito: ptim
Nota importante:
Quando você usa o
git branch -m
(mover), o Git também está atualizando seu ramo de rastreamento com o novo nome.git remote rename
está tentando atualizar sua seção remota no seu arquivo de configuração. Ele renomeará o controle remoto com o nome dado para o novo nome, mas, no seu caso, não encontrou nenhum, portanto, a renomeação falhou.Mas não fará o que você pensa; ele renomeará o nome remoto da configuração local e não a ramificação remota.
Nota Os servidores Git podem permitir que você renomeie as ramificações do Git usando a interface da Web ou programas externos (como Sourcetree, etc.), mas você deve ter em mente que no Git todo o trabalho é feito localmente, por isso é recomendável usar os comandos acima Para o trabalho.
fonte
Your configuration specifies to merge with the ref ''refs/heads/old_name'
git checkout <new_name> ; git branch --unset-upstream
--unset-upstream
antes de re-empurrar, ele funciona como pretendido.Se você nomeou um ramo incorretamente E o enviou para o repositório remoto, siga estas etapas para renomear esse ramo (com base neste artigo ):
Renomeie sua filial local:
Se você estiver no ramo que deseja renomear:
git branch -m new-name
Se você estiver em um ramo diferente:
git branch -m old-name new-name
Exclua a
old-name
filial remota e empurre anew-name
filial local :git push origin :old-name new-name
Redefina a ramificação upstream da ramificação local com novo nome :
Alterne para a ramificação e, em seguida:
git push origin -u new-name
fonte
git push <remote> --delete old_name
&git push origin :old-name new-name
para excluir uma ramificação.master
, em Detalhes do Repo, defina a ramificação padrão como nova ramificação. O erro é:By default, deleting the current branch is denied, because the next 'git clone' won't result in any file checked out, causing confusion. You can set 'receive.denyDeleteCurrent' configuration variable to 'warn' or 'ignore' in the remote repository to allow deleting the current branch, with or without a warning message. To squelch this message, you can set it to 'refuse'. error: refusing to delete the current branch: refs/heads/master
Parece que existe um caminho direto:
Veja a resposta original para mais detalhes.
fonte
2.20.1
Excluiu o ramo antigo, mas o novo não foi criado.Também pode ser feito da seguinte maneira.
Primeiro, renomeie a ramificação local, depois a ramificação remota.
Renomeando a filial local:
Se conectado a outra filial,
Se conectado na mesma filial,
Renomeando filial remota:
fonte
Se você já enviou o nome errado para remoto, faça o seguinte:
Alterne para o ramo local que você deseja renomear
git checkout <old_name>
Renomeie a filial local
git branch -m <new_name>
Empurre a
<new_name>
ramificação local e redefina a ramificação upstreamgit push origin -u <new_name>
Excluir a
<old_name>
ramificação remotagit push origin --delete <old_name>
Isso foi baseado neste artigo .
fonte
Anexando um snippet simples para renomear sua filial atual (local e na origem):
Explicação dos documentos do git:
fonte
Não há método direto,
Renomear filial local ,
Minha filial atual é master
git branch -m master_renamed
#master_renamed é o novo nome do mestreExcluir filial remota,
git push origin --delete master
#origin é remote_nameEnviar ramificação renomeada para remoto,
git push origin master_renamed
É isso aí...
fonte
git push -u origin master_renamed
para definir o ramo como um ramo de rastreamentoIsso pode ser feito mesmo sem renomear a filial local em três etapas simples:
fonte
Eu uso esses alias do git e praticamente faz o trabalho automático:
Funciona se você tiver os nomes padrão, como mestre, origem etc. Você pode modificar como desejar, mas isso lhe dará a ideia.
fonte
Eu tive que fazer a seguinte tarefa para renomear filial local e remota:
fonte
Renomeie sua filial local. Se você estiver no ramo que deseja renomear:
git branch -m new-name
Se você estiver em um ramo diferente:
Exclua a ramificação remota com nome antigo e pressione a ramificação local com novo nome.
origem do git push: nome antigo nome novo
Redefina a ramificação upstream para a ramificação local com novo nome. Mude para o ramo e, em seguida:
origem do push do git -u new-name
Tudo pronto!
fonte
Se você estiver no ramo que deseja renomear:
se você permanecer em uma filial diferente no momento atual:
Permaneça no ramo de destino e:
Alterne para o ramo de destino e, em seguida:
fonte