Considere cambiar la respuesta aceptada a la respuesta de Alexey Ten, que es altamente votada y correcta ( git update-ref -d).
Jonathon Reinhart el
Respuestas:
11
Parece una etiqueta, por lo que el siguiente comando debería funcionar:
git tag -d refs/original/refs/heads/master
Pero, como ha dicho que no, puede eliminar el archivo del .gitdirectorio. Desde la raíz del repositorio, un comando como este lo obtendrá:
rm .git/refs/tags/refs/original/refs/heads/master
La ruta puede ser ligeramente diferente si el git-tagcomando falla, por lo que es posible que desee cd .git/refsencontrar la cabeza infractora por prueba y error. Eliminar el archivo eliminará la referencia de su repositorio local.
Esto funcionó para mí con el mismo problema. Tenga en cuenta que la referencia se almacenó en un archivo llamado .git / package-refs. Si abre eso, puede ver la línea con el SHA y la cadena "refs / original / refs / heads / master". Probablemente podría eliminar esa línea, pero usaría este comando para estar seguro.
Matt N
14
+1: siempre debes usar en git update-ref -dlugar de solo rmref: las cosas malas pueden suceder de otra manera.
Callum Rogers
3
Esta debería ser la respuesta aceptada
Daniel Alder
1
@CallumRogers ¿por qué?
wahnfrieden
66
@wahnfrieden porque git podría usar referencias empaquetadas y no habrá un archivo correspondiente en el refsdirectorio
Alexey Ten
17
Esta es una referencia. Normalmente creado por git filter-branch: es un puntero al lugar donde estaba su rama antes de ejecutarla git filter-branch.
Y para eliminar cualquier referencia, siempre puede insertar nada en el repositorio local:
git push . :refs/original/refs/heads/master
Las otras respuestas también cubrieron bastante bien otras formas de eliminación.
git update-ref -d
).Respuestas:
Parece una etiqueta, por lo que el siguiente comando debería funcionar:
Pero, como ha dicho que no, puede eliminar el archivo del
.git
directorio. Desde la raíz del repositorio, un comando como este lo obtendrá:La ruta puede ser ligeramente diferente si el
git-tag
comando falla, por lo que es posible que deseecd .git/refs
encontrar la cabeza infractora por prueba y error. Eliminar el archivo eliminará la referencia de su repositorio local.fuente
.git/refs/original/refs/heads/master
.git update-ref
lugar de mutar manualmente las partes internas de Git. Ver la respuesta de Alexey.Este comando debería funcionar
fuente
git update-ref -d
lugar de solorm
ref: las cosas malas pueden suceder de otra manera.refs
directorioEsta es una referencia. Normalmente creado por
git filter-branch
: es un puntero al lugar donde estaba su rama antes de ejecutarlagit filter-branch
.Y para eliminar cualquier referencia, siempre puede insertar nada en el repositorio local:
Las otras respuestas también cubrieron bastante bien otras formas de eliminación.
fuente