No Git, uma ramificação é apenas uma lista ordenada de confirmações (aka: checkins). Algo que pode ser um pouco confuso para novos usuários é que as ramificações não precisam ter um nome (embora na maioria das circunstâncias você queira um); e não há nada de especial sobre um ramo específico (o master
ramo é apenas o padrão criado para você quando você inicializa um repositório).
Você provavelmente já sabe disso, mas o Git é diferente de outros sistemas de controle de versão, como o popular "Subversion", porque cada "cópia de trabalho" (na linguagem do Subversion) é um repositório próprio ... na verdade, não há nada em particular especial sobre qualquer cópia em particular; exceto que uma cópia foi geralmente aceita como a "canônica" usada para armazenar o produto final.
Então, voltando à sua pergunta ... o repositório "canônico" que você clonou quando iniciou sua cópia local continha um ramo "mestre" por padrão; e está preso por aí. Agora, se você tiver acesso ao computador que contém o repositório principal, poderá efetuar login e executar:
git branch -d master
No entanto, se você não conseguir fazer isso, ainda poderá fazê-lo na sua máquina local. O git branch
comando possui uma -r
opção que afeta o repositório remoto. Em outras palavras, a execução do seguinte comando deve funcionar:
git branch -d -r master
Observe que nos dois casos; Estou assumindo que master
foi completamente mesclado ao histórico de desenvolvimento em que sua cópia local está atualmente. Se você nunca usou master
antes (ou seja: você só fez check-in no development
ou production
), não precisa se preocupar com nada. No entanto, se você (ou outra pessoa) estiver realizando o check-in master
, poderá ter um problema. Você pode forçar uma exclusão alterando o -d
para -D
nos comandos acima; mas eu recomendo verificar o que está de master
antemão! Se você não tiver acesso ao computador remoto, provavelmente não poderá recuperá-lo!
A propósito; se você (ou qualquer outra pessoa) for novo no Git, recomendo a leitura Git de baixo para cima, de John Wiegley . Mesmo que eu tivesse usado o Git um pouco por conta própria antes de encontrar este artigo, realmente não entendi como ele funcionou até a leitura. É bastante útil!
git branch -d -r master
não exclui mais a ramificação remota - exclui o conhecimento da sua cópia local sobre a ramificação remota. Da próxima vez que vocêgit fetch
, o ramo voltará! Em vez disso, você desejará executargit push origin :master
. Essencialmente, o que você está fazendo aqui é empurrar uma ramificação nula (o nome da ramificação vazia à esquerda da:
) por cima da ramificação remota (o nome da ramificação à direita da:
), excluindo-a efetivamente.