Tenho certeza de que vi em algum lugar de um projeto popular do Git que os ramos tinham um padrão como "feature / xyz".
No entanto, quando tento criar um ramo com o caractere de barra, recebo um erro:
$ git branch labs/feature
error: unable to resolve reference refs/heads/labs/feature: Not a directory
fatal: Failed to lock ref for update: Not a directory
Mesmo problema para (minha tentativa inicial):
$ git checkout -b labs/feature
Como alguém cria uma ramificação no Git com o caractere de barra?
HEAD
. Parece que o git pensa que vocêHEAD
é um link para o ramolabs/feature
que não foi criado. Não tenho ideia de como isso poderia ter acontecido, mas significa que sua tentativa de criar um ramo chamado comfoo/bar
base nele não está funcionando. Alguma idéia de como vocêHEAD
se soltou?.git/refs/heads
ou seja, se você fizergit checkout -b feature/123
isso dentro doprojectRootFolder/.git/refs/heads
diretório, verá um diretório chamado:feature
onde dentro desse diretório, você verá uma ramificação chamada123
. Posteriormente, se você criar outrofeature/124
dentro dofeature
diretório, verá um ramo chamado124
HEAD
" Legal "@CBBaileyRespostas:
Você tem certeza de que o ramo
labs
ainda não existe (como neste tópico )?fonte
foo
' namespace), mas nãofoo
(que poderia servir como um espaço de nomes para outro ramo ou ser um ramo próprio)pack-refs
, por isso está se esforçando para protegê-lo disso.labs
ramo e tentou criarlabs/feature
, no qual o git recusou.É possível ter nomes de ramificação hierárquica (nomes de ramificação com barra). Por exemplo, no meu repositório, tenho essas ramificações. Uma ressalva é que você não pode ter a ramificação 'foo' e a ramificação 'foo / bar' no repositório.
Seu problema não é com a criação de ramificação com barra no nome.
A mensagem de erro acima fala sobre a ramificação 'labs / feature', não sobre 'foo / bar' (a menos que seja um erro no copy'n'paste, ou seja, você editou partes da sessão). Qual é o resultado de
git branch
ougit rev-parse --symbolic-full-name HEAD
?fonte
Às vezes, esse problema ocorre se você já possui uma ramificação com o nome base.
Eu tentei isso:
Infelizmente, eu já tinha um ramo chamado
features
e recebi a exceção do solicitante de pergunta.A remoção da ramificação
features
resolveu o problema, o comando acima funcionou.fonte
No meu caso, esqueci que já havia um
labs
ramo não utilizado . Excluí-lo resolveu o problema:Explicação:
Cada nome pode ser apenas um ramo pai ou um ramo normal, não ambos. É por isso que os ramos
labs
elabs/feature
não podem existir os dois ao mesmo tempo.O motivo desse comportamento é que as ramificações são armazenadas no sistema de arquivos e também não é possível ter um arquivo
labs
e um diretóriolabs
no mesmo nível.fonte
Eu poderia estar errado, mas achei que as barras só apareciam nos nomes das filiais quando se relacionavam a um repositório remoto, por exemplo
origin/master
.fonte