Por favor, considere alterar a resposta aceita pela resposta de Alexey Ten, que é altamente votada e correta ( git update-ref -d).
Jonathon Reinhart
Respostas:
11
Parece uma tag, portanto, o seguinte comando deve funcionar:
git tag -d refs/original/refs/heads/master
Mas, como você disse que não, basta excluir o arquivo do .gitdiretório. Na raiz do repositório, um comando como este o receberá:
rm .git/refs/tags/refs/original/refs/heads/master
O caminho pode ser um pouco diferente se o git-tagcomando falhar; portanto, você pode querer cd .git/refsencontrar a cabeça ofensora por tentativa e erro. A exclusão do arquivo removerá a referência do seu repositório local.
Isso funcionou para mim com o mesmo problema. Observe que a referência foi armazenada em um arquivo chamado .git / compact-refs. Se você abrir isso, poderá ver a linha com o SHA e a sequência "refs / original / refs / heads / master". Você provavelmente poderia excluir essa linha, mas eu usaria esse comando para estar seguro.
Matt N
14
+1: você sempre deve usar em git update-ref -dvez de apenas rmref - coisas ruins podem acontecer de outra maneira.
Callum Rogers
3
Esta deve ser a resposta aceita
Daniel Alder
1
@CallumRogers why?
wahnfrieden
6
@wahnfrieden porque o git poderia usar referências empacotadas e não haverá arquivo correspondente no refsdiretório #
Alexey Ten
17
Esta é uma ref. Normalmente criado por git filter-branch- é um ponteiro para onde seu ramo estava antes de você executar git filter-branch.
E para excluir qualquer ref, você sempre pode enviar nada a ele no repositório local:
git push . :refs/original/refs/heads/master
As outras respostas também cobriram muito bem outras maneiras de excluir.
git update-ref -d
).Respostas:
Parece uma tag, portanto, o seguinte comando deve funcionar:
Mas, como você disse que não, basta excluir o arquivo do
.git
diretório. Na raiz do repositório, um comando como este o receberá:O caminho pode ser um pouco diferente se o
git-tag
comando falhar; portanto, você pode querercd .git/refs
encontrar a cabeça ofensora por tentativa e erro. A exclusão do arquivo removerá a referência do seu repositório local.fonte
.git/refs/original/refs/heads/master
.git update-ref
vez de manualmente alterar os internos do Git. Veja a resposta de Alexey.Este comando deve funcionar
fonte
git update-ref -d
vez de apenasrm
ref - coisas ruins podem acontecer de outra maneira.refs
diretório #Esta é uma ref. Normalmente criado por
git filter-branch
- é um ponteiro para onde seu ramo estava antes de você executargit filter-branch
.E para excluir qualquer ref, você sempre pode enviar nada a ele no repositório local:
As outras respostas também cobriram muito bem outras maneiras de excluir.
fonte