Acabei de renomear minha filial local usando
git branch -m oldname newname
mas isso renomeia apenas a versão local da ramificação. Como posso renomear o arquivo no GitHub?
Acabei de renomear minha filial local usando
git branch -m oldname newname
mas isso renomeia apenas a versão local da ramificação. Como posso renomear o arquivo no GitHub?
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:
git push origin :name_of_the_old_branch_on_github
git push origin new_name_of_the_branch_that_is_local
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:
git push origin --delete name_of_the_remote_branch
Edit: Como mencionado por @ void.pointer nos comentários
Observe que você pode combinar as duas operações push:
git push origin :old_branch new_branch
Isso excluirá o ramo antigo e enviará o novo.
Isso pode ser transformado em um alias simples que leva o ramo remoto original e o novo nome do ramo como argumentos, em ~/.gitconfig
:
[alias]
branchm = "!git branch -m $2 $3 && git push $1 :$2 $3 -u #"
Uso:
git branchm origin old_branch new_branch
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.
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 e old_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:
git push origin :old-name-of-branch-on-github
git branch -m old-name-of-branch-on-github new-name-for-branch-you-want
git push origin new-name-for-branch-you-want
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.
Basta remover o ramo antigo e criar um novo.
Exemplo (renomeando apenas a ramificação remota):
git push origin :refs/heads/oldname
git push origin newname:refs/heads/newname
Você provavelmente também deve renomear a filial local e alterar as configurações para onde pressionar / puxar.
git push origin newname:refs/heads/newname
? master e newname podem não apontar para o mesmo commit.
1. 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
2. Exclua a ramificação remota com nome antigo e pressione a ramificação local com novo nome.
git push origin :old-name new-name
3. Redefina a ramificação upstream para a ramificação local com novo nome.
Mude para o ramo e, em seguida:
git push origin -u new-name
Então a conclusão é
git branch -m new-name
git push origin :old-name new-name
git push origin -u new-name
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.
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
.
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
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 para new-branch-name
..git/refs/head/new-branch-name
.git/refs/remotes/[all-remote-names]/new-branch-name
awe/some/branch
para new-branch-name
(local e remota!)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:
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 degit push
-u
origin oldname
oldname
git push
git push origin oldname
Se eu NÃO usar o comando git branch --unset-upstream
antes git push origin newbranch
, o git recria oldbranch
e empurra newbranch
para origin oldbranch
- derrotando minha intenção.
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:
git branch -m old_branch new_branch
git push origin :old_branch
git push --set-upstream origin new_branch
Simples assim . Para renomear o git branch local e remotamente, use este snippet (testado e funciona como um encanto):
git branch -m <oldBranchName> <newBranchName>
git push origin :<oldBranchName>
git push --set-upstream origin <newBranchName>
Explicação:
Renomear etapa:
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].
cabeça de origem git push
git branch -m nome-ramo antigo nome-ramo novo
cabeça de origem git push
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