Aquí está mi caso:
Pero de repente, después de escribir el command git checkout master
mi computadora encontró una pantalla azul de la muerte y se produjo un apagado inesperado de la fuerza. Después de volver a iniciar mi computadora, he comprobado el estado de mi sucursal actual y, como resultado, obtuve todos y cada uno de los files como nuevos files marcados.
Ahora, estoy atascado en este punto y después git log
command de git log
recibo un error
$ git log fatal: your current branch appears to be broken
¿Cómo resolver este problema y recuperar mi twig ?.
Estoy trabajando con Windows 7 y la última versión de git bash
Editar: no quiero eliminar esta twig.
Me encuentro con un problema similar en Windows 7. En mi caso, el file de sucursal actual (consulte por ./git/HEAD
) en \.git\refs\heads
estaba roto.
Encontré el código hash de la twig actual rota en .git\logs\refs\heads
con el mismo nombre de twig.
Y arreglé el problema abriendo ese file ( .git\logs\refs\heads\xxx
) a través del bloc de notas y copié el 4º número (el código hash) en ( .git\refs\heads\xxx
)
Los files en el directory .git \ refs \ heads son sus twigs. Verifica esos files. Deben contener solo un único object de confirmación SHA-1 hash. Este hash es tu última key SHA-1 y tu HEAD al mismo time.
Copie la key SHA-1 y escriba
$ git cat-file -t 5917fefd485f655ab369d4e9eeda3c157c03f514 commit $ git cat-file -p 5917fefd485f655ab369d4e9eeda3c157c03f514 tree b75cab3c54b780075b312be3e878b389a2baf904 parent 8235189aa22169295243d295fb1cc2ff2f8f7cd5 author Ilker Cat <ilker.cat@blabla.com> 1495136738 +0200 committer Ilker Cat <ilker.cat@blabal.com> 1495136738 +0200
El segundo resultado es básicamente lo que contiene un object de compromiso. Intente comprobar si el object de confirmación en su twig principal bajo .git \ refs \ heads \ master y sus keys de tree y SHA-1 principal no están dañadas.
Incluso algunos apóstrofes dentro de su file principal de twigs conducirán a una "twig rota". Debe contener solo el último commit commits SHA-1 hash y nada más.
Su nombre de sucursal ahora probablemente contenga algunos caracteres especiales o algo así.
Debe ir al directory raíz de su check-out (donde está el directory .git/
) y
.git/packed-refs
; si ve una línea con su nombre de sucursal, elimínelo .git/refs/heads for
un file que lleva el nombre de tu sucursal; si ves uno, elimínalo Algunas veces también puede ocurrir debido a problemas de permissions de files, verifique si tiene los permissions apropiados en todos los files en el repository.