Você verificou as configurações de administrador? Meu projeto atual no github não tem ramificações, mas você pode renomear o repositório lá, então eu acho que você poderia renomear ramificações também.
precisa saber é o seguinte
12
@evanmcdonnal Não, você não pode renomear uma ramificação Git no site GitHub.
Andrew Marshall
As respostas para esta pergunta são quase universalmente erradas. A questão não é como renomear um ramo git, é como renomear um ramo github . Muitas coisas no github estão ligadas a um ramo, o que significa que qualquer resposta precisa cobrir essas coisas. Por exemplo, renomeando master para main
gman 14/06
@ gman Pelo que vale, parece que essas respostas responderam ao espírito da pergunta do OP. A pergunta do OP pode não ter sido perfeitamente formulada, do ponto de vista tecnicamente exigente ou do problema relevante que você está investigando. Mas, então, essa pergunta não vem de uma profunda experiência técnica do git ou do GitHub. Nesta perspectiva, pode-se considerar isso uma questão "iniciante" ou elementar. Como tal, é redigido e respondido adequadamente a este público. Frustrante, claro, mas acho que esse Q, essas respostas são apropriadas / relevantes, especialmente para os Q's pré-BLM git / Hub.
SherylHohman
Respostas:
309
Como mencionado, exclua o antigo no Github e pressione novamente, embora os comandos usados sejam um pouco mais detalhados do que o necessário:
Simples. Dissecando um pouco os comandos, o comando git push é essencialmente:
git push <remote> <local_branch>:<remote_branch>
Portanto, fazer um push sem local_branch especificado significa essencialmente "não tira nada do meu repositório local e faz dele o ramo remoto". Eu sempre achei que isso fosse completamente desleixado, mas é assim que é feito.
Edit: A partir do Git 1.7, há uma sintaxe alternativa para excluir uma ramificação remota:
Observe que os argumentos posicionais nos comandos do shell eram problemáticos nas versões mais antigas (anteriores a 2,8?) Do git, portanto o alias pode variar de acordo com a versão do git. Veja esta discussão para detalhes.
Note que você pode combinar as operações de pressão 2: git push origin :old_branch new_branch. Isso excluirá o ramo antigo e enviará o novo.
precisa saber é o seguinte
4
Existe alguma razão para o novo ramo não poder ser enviado antes de excluir o antigo? Pessoalmente, prefiro processos em que a operação de exclusão ocorre após a operação de criação ser bem-sucedida, caso algo dê errado.
jmort253
7
Não funciona. Ele simplesmente colocará o ramo de volta no Github com seu nome antigo.
geoff
1
@AdamParkin 1. git branch -m new_branch(renomeie old_branch para new_branch) 2. git commit -m 'msg', 3. git push4. Mhmm, old_branch aparece no Github, pergunta do Google e sou levado à sua resposta 5. git push origin :old_branch(diz que foi excluído) 6. git push origin new_branch... termina e diz * [new branch] new_branch -> old_branch. Volte ao Github e old_branchapareça novamente. Se eu excluir na interface da web do Github, tenho a opção de "Restaurar", então parece que pressionar o new_branch está apenas restaurando.
Kcvin
2
Uma coisa a ter em atenção é que, quando você renomeia a ramificação, todas as solicitações pull que você abrir contra essa solicitação serão automaticamente fechadas. Tivemos que mudar o nome da volta ramo e, em seguida, reabrir manualmente todas as solicitações de pull ....
Esta é a breve resposta que funciona. BTW, o primeiro comando também pode ser colocado como último na resposta.
Eric Wang
esta resposta abrange git não github
gman 14/06
1
Na verdade, eu fiz isso duas vezes e funcionou no github.
spozun 16/06
17
Eu encontrei 3 comando como você pode alterar o nome do seu ramo git, e esses comandos são uma maneira mais rápida 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
Se você precisar passo a passo, pode ler este ótimo artigo
git push --set-upstreamé a parte mais importante se você alterar o nome da filial localmente usando o aplicativo github antes de excluir a filial remota.
Isso é para o git e o GitHub está sob o git, portanto ele funcionará e funcionará comigo e com outras pessoas
Abdelrahman Mohamed
Isso não funciona. Tente o primeiro e o segundo passo git branch -m new-name && git push origin :master new-name. Isso irá falhar. Se esta resposta é apenas sobre git e não github, essa pergunta é uma duplicata de várias outras perguntas e deve ser encerrada. Se realmente é sobre o github, a resposta deve abranger o github. Esta resposta não.
gman 15/06
6
Você pode fazer isso sem o terminal, basta criar um ramo com o novo nome e remover o antigo depois. Você pode usar esta postagem para fazer isso.
Clique com o botão direito do mouse no seu ramo para renomear, na barra lateral. Selecione "Renomear ramificação ..." no menu de contexto e renomeie-o.
Obrigado, mas tive que mudar para o ramo, bem como importá-lo.
Flash Sheridan
1
esta resposta cobre git não github
gman 14/06
0
Este artigo mostra como fazê-lo muito fácil.
1. Para renomear uma ramificação Git local, podemos usar o comando Git branch -m para modificar o nome:
git branch -m feature1 feature2 2. Se você está apenas procurando pelo comando para renomear uma ramificação Git remota, é isso "
git push -u origin feature2:feature3 Verifique se você não possui tags na ramificação antes de fazer isso git tag.
faça o mesmo em todas as suas origens / servidores remotos (se existir)
info : nos servidores remotos geralmente não há diretórios refs / remotes / * porque você já está no servidor remoto;) (bem, talvez em configurações avançadas do git seja possível, mas nunca vi isso)
A ramificação agora é renomeada de awe/some/branchpara new-branch-name(local e remota!)
Os diretórios no nome da filial foram removidos.
Informações: dessa forma, pode não ser a melhor, mas ainda funciona para pessoas que podem ter problemas com as outras maneiras.
No meu caso, eu precisava de um comando adicional
para fazer com que minha ramificação renomeada subisse para git branch --unset-upstream origin newname .
(Para facilitar a digitação), eu primeiro git checkout oldname.
Em seguida, execute o seguinte:
Essa etapa extra pode ser necessária apenas porque eu (tendem a) configurar o rastreamento remoto em minhas filiais via . Dessa forma, ao fazer check-out, subseqüentemente preciso apenas digitar em vez degit push-uorigin oldnameoldnamegit pushgit push origin oldname
Se eu NÃO usar o comando git branch --unset-upstreamantes git push origin newbranch, o git recriaoldbranch e empurra newbranchpara origin oldbranch- derrotando minha intenção.
@gman Ponto tomado. Minha solução usa o git localmente para renomear uma ramificação no GitHub, remotamente, depois de renomeá-la na cópia git local do repositório do GitHub. Portanto, talvez isso possa ser considerado uma solução especializada, pois quando você deseja usar a linha de comando, e não a interface do site do GitHub, e você tem um clone local que também deseja atualizar. Obrigado por destacar essa distinção e por esclarecer que essa resposta é para um caso especial, e não para uma solução geral.
SherylHohman 14/06
O problema é que o github vincula os recursos às ramificações. Tente renomear master para main e suas instruções falharão.
gman
-1
Os seguintes comandos renomeiam a ramificação localmente, exclua a ramificação antiga no local remoto e empurre a nova ramificação, configurando a ramificação local para rastrear o novo controle remoto:
Embora seu snippet de código possa resolver o problema, você deve descrever qual é o objetivo do seu código (como ele resolve o problema). Além disso, convém verificar stackoverflow.com/help/how-to-answer
Ahmad F
esta resposta cobre git não github
gman 14/06
-1
Simples assim . Para renomear o git branch local e remotamente, use este snippet (testado e funciona como um encanto):
Referência do Git:
Com a opção -m ou -M , será renomeado para. Se tiver um reflog correspondente, ele será renomeado para corresponder e uma entrada de reflog será criada para lembrar a renomeação da ramificação. Se existir, -M deve ser usado para forçar a renomeação.
Excluir etapa:
Referência do Git:
git push origin: experimental Encontre uma referência que corresponda à experimental no repositório de origem (por exemplo, refs / heads / experimental) e exclua-a.
Atualização na etapa de repo remoto (referência upstream para rastreamento):
Referência do Git:
--set-upstream Para cada ramificação atualizada ou enviada com êxito, adicione uma referência upstream (rastreamento), usada pelo git-pull [1] sem argumento e outros comandos. Para mais informações, consulte branch..merge em git-config [1].
Na ramificação git, execute a ramificação git -m old_name new_name Isso modificará o nome da ramificação em seu repositório local git push origin: old_name new_name Isso fará o nome modificado for remoto e excluirá a ramificação antiga git push origin -u new_name Define a ramificação local filial remota. Isso resolve o problema
Respostas:
Como mencionado, exclua o antigo no Github e pressione novamente, embora os comandos usados sejam um pouco mais detalhados do que o necessário:
Simples. Dissecando um pouco os comandos, o comando git push é essencialmente:
Portanto, fazer um push sem local_branch especificado significa essencialmente "não tira nada do meu repositório local e faz dele o ramo remoto". Eu sempre achei que isso fosse completamente desleixado, mas é assim que é feito.
Edit: A partir do Git 1.7, há uma sintaxe alternativa para excluir uma ramificação remota:
Edit: Como mencionado por @ void.pointer nos comentários
Isso pode ser transformado em um alias simples que leva o ramo remoto original e o novo nome do ramo como argumentos, em
~/.gitconfig
:Uso:
Observe que os argumentos posicionais nos comandos do shell eram problemáticos nas versões mais antigas (anteriores a 2,8?) Do git, portanto o alias pode variar de acordo com a versão do git. Veja esta discussão para detalhes.
fonte
git push origin :old_branch new_branch
. Isso excluirá o ramo antigo e enviará o novo.git branch -m new_branch
(renomeie old_branch para new_branch) 2.git commit -m 'msg'
, 3.git push
4. Mhmm, old_branch aparece no Github, pergunta do Google e sou levado à sua resposta 5.git push origin :old_branch
(diz que foi excluído) 6.git push origin new_branch
... termina e diz* [new branch] new_branch -> old_branch
. Volte ao Github eold_branch
apareça novamente. Se eu excluir na interface da web do Github, tenho a opção de "Restaurar", então parece que pressionar o new_branch está apenas restaurando.Os seguintes comandos funcionaram para mim:
fonte
Eu encontrei 3 comando como você pode alterar o nome do seu ramo git, e esses comandos são uma maneira mais rápida de fazer isso
Se você precisar passo a passo, pode ler este ótimo artigo
Como renomear ramificações locais e remotas do Git
fonte
git push --set-upstream
é a parte mais importante se você alterar o nome da filial localmente usando o aplicativo github antes de excluir a filial remota.Basta remover o ramo antigo e criar um novo.
Exemplo (renomeando apenas a ramificação remota):
Você provavelmente também deve renomear a filial local e alterar as configurações para onde pressionar / puxar.
fonte
git push origin newname:refs/heads/newname
? master e newname podem não apontar para o mesmo commit.Renomear ramificações no git local e remoto
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.
Mude para o ramo e, em seguida:
Então a conclusão é
fonte
git branch -m new-name && git push origin :master new-name
. Isso irá falhar. Se esta resposta é apenas sobre git e não github, essa pergunta é uma duplicata de várias outras perguntas e deve ser encerrada. Se realmente é sobre o github, a resposta deve abranger o github. Esta resposta não.Você pode fazer isso sem o terminal, basta criar um ramo com o novo nome e remover o antigo depois. Você pode usar esta postagem para fazer isso.
https://github.com/blog/1377-create-and-delete-branches
fonte
Aqui está o que funcionou para mim:
1.) Crie o novo ramo primeiro: git push github newname: refs / heads / newname
2.) No site github, vá para configurações e mude a ramificação Padrão para newname
3.) Exclua o nome antigo git push github --delete oldname
fonte
fonte
Este artigo mostra como fazê-lo muito fácil.
1. Para renomear uma ramificação Git local, podemos usar o comando Git branch -m para modificar o nome:
git branch -m feature1 feature2
2. Se você está apenas procurando pelo comando para renomear uma ramificação Git remota, é isso "
git push -u origin feature2:feature3
Verifique se você não possui tags na ramificação antes de fazer isso
git tag
.fonte
Outra maneira é renomear os seguintes arquivos :
.git/refs/head/[branch-name]
para.git/refs/head/new-branch-name
.git/refs/remotes/[all-remote-names]/[branch-name]
para.git/refs/remotes/[all-remote-names]/new-branch-name
Renomeie o cabeçote e remotes no PC local e nas origens / servidores remotos
A ramificação agora é renomeada (local e remota!)
Atenção
Se seu nome de filial atual contiver slashes (
/
), o git criará os diretórios da seguinte forma:nome do ramo atual:
"awe/some/branch"
.git/refs/head/awe/some/branch
.git/refs/remotes/[all-remote-names]/awe/some/branch
deseja nome da filial:
"new-branch-name"
branch
arquivo de.git/refs/*/awe/some/
.git/refs/head/
.branch
arquivo de todos.git/refs/remotes/*/awe/some/
.git/refs/remotes/*/
.branch
arquivos opied paranew-branch-name
..git/refs/head/new-branch-name
.git/refs/remotes/[all-remote-names]/new-branch-name
A ramificação agora é renomeada de
awe/some/branch
paranew-branch-name
(local e remota!)Os diretórios no nome da filial foram removidos.
Informações: dessa forma, pode não ser a melhor, mas ainda funciona para pessoas que podem ter problemas com as outras maneiras.
fonte
No meu caso, eu precisava de um comando adicional para fazer com que minha ramificação renomeada subisse para
git branch --unset-upstream
origin newname
.(Para facilitar a digitação), eu primeiro
git checkout oldname
.Em seguida, execute o seguinte:
git branch -m newname
git push origin :oldname
ou ougit push origin --delete oldname
git branch --unset-upstream
git push -u origin newname
git push origin newname
Essa etapa extra pode ser necessária apenas porque eu (tendem a) configurar o rastreamento remoto em minhas filiais via . Dessa forma, ao fazer check-out, subseqüentemente preciso apenas digitar em vez de
git push
-u
origin oldname
oldname
git push
git push origin oldname
Se eu NÃO usar o comando
git branch --unset-upstream
antesgit push origin newbranch
, o git recriaoldbranch
e empurranewbranch
paraorigin oldbranch
- derrotando minha intenção.fonte
Os seguintes comandos renomeiam a ramificação localmente, exclua a ramificação antiga no local remoto e empurre a nova ramificação, configurando a ramificação local para rastrear o novo controle remoto:
fonte
Simples assim . Para renomear o git branch local e remotamente, use este snippet (testado e funciona como um encanto):
Explicação:
Renomear etapa:
Excluir etapa:
Atualização na etapa de repo remoto (referência upstream para rastreamento):
fonte
3 etapas simples
cabeça de origem git push
git branch -m nome-ramo antigo nome-ramo novo
cabeça de origem git push
fonte
Na ramificação git, execute a ramificação git -m old_name new_name Isso modificará o nome da ramificação em seu repositório local git push origin: old_name new_name Isso fará o nome modificado for remoto e excluirá a ramificação antiga git push origin -u new_name Define a ramificação local filial remota. Isso resolve o problema
fonte