Estou tentando enviar um novo branch local product-0.2
para remoto, onde já existe uma tag com o mesmo nome (mas o branch em si não existe)
git push -v --tags --set-upstream origin product-0.2:product-0.2
Pushing to https://****@github.com/mycompany/product.git
error: src refspec product-0.2 matches more than one.
error: failed to push some refs to 'https://****@github.com/mycompany/product.git'
Mesmo com:
git push origin product-0.2:/refs/heads/product-0.2
Embora funcione o contrário, por exemplo, crie um branch product-0.1
, faça um commit nele e depois aplique uma tag product-0.1
.
Algumas pessoas contornam isso removendo a tag conflitante localmente, empurrando o branch e recuperando a tag remota, mas parece complicado e sujeito a erros.
Como posso criar meu branch com o mínimo de barulho?
Obrigado pela sua contribuição
git
git-branch
youri
fonte
fonte
refs/heads/product-0.2:refs/heads/product-0.2
, ou seja, sem a barra inicial, e também forneça o refspec completo no lado local.Respostas:
O seguinte comando deve funcionar.
fonte
refs/remotes/remote_name/remote_branch
master
e não podia mais enviar para o branch com o mesmo nome.git push origin refs/heads/master
fiz o truque (então eu apaguei aquela tag para que parasse de acontecer).Verifique quais tags estão associadas à sua filial:
No meu caso, eu tinha uma tag com o mesmo nome da filial. Eliminar funcionou:
fonte
Mude os nomes.
Quer você faça isso localmente ou remotamente, basta alterar os nomes.
Uma tag e um branch são fundamentalmente a mesma coisa no git: eles representam um ponteiro para um commit. A diferença é que um ponteiro de branch avança conforme você faz commits, enquanto uma tag permanece estática.
No entanto , você pode executar um
git checkout
em uma ramificação ou tag. Por que você lutaria com todos esses nomes duplicados? Mude-os.fonte
product-0.2.0
com o último dígito para o 'nível de patch', mas ainda assim, tínhamos a convenção de nomenclatura em vigor e não tivemos problemas no passado quando o branch foi criado antes da tag.Se você estiver tentando enviar uma tag com o mesmo nome de um branch:
fonte
Eu estava tentando enviar para um repositório canônico esta manhã e recebi o seguinte erro:
Isso aconteceu porque eu acidentalmente criei uma tag mestre localmente:
Depois de excluir esta tag localmente:
Eu fui capaz de empurrar novamente.
fonte
Isso falhou:
Enquanto isso funcionou para mim:
fonte
Se você estiver usando a árvore de origem, siga as etapas a seguir.
Tente novamente para enviar suas alterações. agora isso vai funcionar.
fonte