2011-04-21 17 views
9

Estaba intentando establecer por qué una función en un sitio web funcionaba localmente pero no remotamente, así que mi idea era descargar el sitio remoto y hacer un git diff para detectar cualquier diferencia.Error con GIT después de importar cambios desde un servidor

Desde que hice esto, sin embargo, todos los comandos de GIT se cumplen con:

fatal: Unable to read current working directory 

¿He matado a mi repo? es esto reversible?

+2

Por lo general, esto ocurre cuando se emite un comando 'git' dentro de un directorio que ya no existe. ¿Estás seguro de que no has eliminado/cambiado el nombre del directorio de tu repositorio? –

+1

qué raro, la estructura de la carpeta es idéntica, pero debido a que se ha escrito demasiado (el repositorio existe como parte del sitio, no del todo) con la versión remota, simplemente volví a hacer CD en la carpeta y estaba correcto. Aunque, mi plan ha fallado en última instancia, ya que está informando cambios en los archivos que nunca han cambiado, y los cambios sin seguimiento a los archivos que deben ser rastreados. –

+0

'descargar el sitio remoto'? Supongo que fue con algo no-git ... como 'rsync -hxDPavilyz -H -stats --delete' o' wget --nh --np --mirror'? En ambos casos, lea cuidadosamente todas las opciones, especialmente con wget re: 'robots.txt' – sehe

Respuesta

8

En su problema cáscara

cd "$PWD" 

Mi conjetura es que no existe/ha recreado. Esto sucede también con enlaces simbólicos colgantes.

De lo contrario, retírese a un terreno más alto. Tenga en cuenta que dependiendo de su shell cd .. funcionará o no (si el shell lo optimiza, conociendo el CWD, puede funcionar, de lo contrario será catch-22: el shell no puede buscar el inode para .. :))

+1

También, el simple' cd .' funcionó para mí – crollywood

+0

Eso estrictamente no debería funcionar @crollywood ya que '.' es un enlace fijo al directorio anterior . Es/podría/ser que bash u otras shells tienen un comportamiento "más inteligente" ya que 'cd' sería un comando incorporado – sehe

+0

Puede que tengas razón @sehe ya que de hecho usé bash, pero sin embargo, me funcionó :) – crollywood

17

Me he encontrado con este problema varias veces. Por más tonto que parezca, cerrar la ventana de la terminal (o la sesión SSH) y abrir una nueva soluciona el problema.

+0

^------^ esto es – tylerlindell

+0

Funciona también para mí. Alguna explicacion? –

+1

Esto puede suceder cuando ejecuta 'git checkout branch2' desde dentro de un directorio que no existe en branch2. En tal caso, el problema se resuelve simplemente dejando el directorio. –

Cuestiones relacionadas