tortoise - Git ''fatal: no hay tal ref: HEAD''
tortoisegit descargar (4)
Creo que esta respuesta puede ser útil para alguien. Resolví este problema casi. Lo primero que hice fue, como escribió Charles Bailey, usar
echo ref: refs/heads/master >.git/HEAD
Entonces mi rama cambió a maestro. Me comprometí con los cambios y pude cambiar a mi rama principal. El problema fue que no pude usar ninguna de mis sucursales locales. Especialmente quería trabajar en la rama 812. Así que encontré el último compromiso con la rama 812 (crear mensaje cuando la confirmación es muy útil;)) y lo cambié. A continuación, creé la rama 812 basada en la que cambié. Lamentablemente faltaban algunos archivos. Por suerte los tuve en el repositorio roto que copié antes de ''echo''
Algo extraño ha pasado a mi repositorio de git. Cuando intento cometer algo en la ventana tortoisegit recibo todos los archivos del proyecto. No puedo revertirlos. Cuando extraigo del servidor, recibo un fatal: No such ref: HEAD
y fatal: Cannot lock the ref ''HEAD''
. Todas mis sucursales locales están desaparecidas. ¿Hay alguna manera de resolver el problema?
Esto no es primero cometer o algo así. Esta cosa sucedió de repente.
EDITAR:
git branch -a
dice: Failed to resolve HEAD as a valid ref
git status
imprime todos los archivos de proyecto marcados como nuevo archivo.
Cambié el nombre de la carpeta del repositorio por un tiempo, y cuando lo cambié, las cosas no eran correctas.
Has perdido tu HEAD
por lo que necesitarás volver a crearla. Lo más sencillo es hacer esto.
echo ref: refs/heads/master >.git/HEAD
Ahora deberías poder ejecutar otros comandos de git y ver dónde estás.
(Aunque, en teoría, podrías intentar hacer git symbolic-ref HEAD refs/heads/master
las versiones más nuevas de git no reconocen un .git
como un repositorio de git a menos que ya contenga un HEAD
por lo que no funcionará para crear un uno nuevo.)
Para mí, el problema era que en Mac OS X, la marca ''uchg'' o ''uappnd'' estaba activada, bloqueando algunos archivos git independientemente de los permisos. Reajusté los chflags de esta manera y lo resolví por mí:
sudo chflags -R 0000 .
HEAD
es usualmente una referencia a una rama particular; en su caso, parece que los punteros de ramificación han desaparecido, por lo que la referencia HEAD no se puede resolver.
Puede usar git fsck --lost-found
para escanear el caché de objetos en busca de objetos inalcanzables; específicamente, usted está interesado en confirmaciones, que luego se pueden encontrar debajo de .git/lost-found/commit/
; Estos son punteros a sus sucursales, todo lo que necesita hacer es averiguar cuál es cuál y crear nuevas referencias utilizando git branch
.