2011-11-29 13 views
12

faltante No estoy seguro de lo que suceda, pero cuando intento de cometer mis cambios en Xcode consigo unXcode commit archivo o directorio

fatal: no se puede cambiar a '/ Usuarios/charlesbutler/xCode/MA móvil/MA MobileTests ': Ningún archivo o directorio

Tengo un montón de archivos como este.

¿Hay algo que pueda hacer para evitar que se cometan? Muchos de ellos fueron eliminados (probablemente de forma manual en la carpeta del proyecto)

+1

Si puede evitarlo, no use git "integración" de XCode . Es completamente horrible; propenso a sobreescribir archivos completos en un conflicto, confirmar archivos que ha ignorado, rechazar empujar o tirar cuando no se han confirmado los archivos ignorados, y así sucesivamente. * Cualquier otra cosa * es un gran avance. – ssube

Respuesta

23

Esto me pasó a mí. Borré una carpeta con contenido de la carpeta del proyecto. Xcode no manejó bien.

Lo que funcionó para solucionarlo fue volver a crear una carpeta vacía con el mismo nombre. No es necesario recrear sus contenidos.

En su caso, creo que solo necesita crear una nueva carpeta vacía "MA Mobile" en la misma ubicación que la anterior. Entonces cometer. Funcionó para mí

Después de la primera confirmación, eliminé la nueva carpeta y me comprometí de nuevo. Parece que a Xcode le falta la lógica para manejar la eliminación de una carpeta completa con los contenidos.

+0

¡Gracias! Me ahorró horas jugando. – deijmaster

+0

Nota para mi comentario ... parece que esta situación ocurre más a menudo cuando pongo mi git local en Apple iCloud Drive ... Pienso. – deijmaster

2

Suponiendo que está utilizando GIT - ejecute lo siguiente en su línea de comandos;

cd "/Users/charlesbutler/xCode/MA Mobile" 
git rm -r "MA MobileTests" 
+0

Acabo de recibir un error ... (Soy realmente nuevo en este truco) fatal: No es un repositorio de git (ni ninguno de los directorios principales): .git – Hackmodford

+0

Tendrá que ejecutar ese comando desde su proyecto carpeta ('/ Users/charlesbutler/xCode/MA Mobile' supongo) – Till

+0

Ahora dice " fatal: pathspec 'MA MobileTests' no coincide con ningún archivo " Incluso traté de poner una carpeta falsa con contenido falso allí (en realidad una copia antigua de lo que estaba allí) y todavía no funcionó. – Hackmodford

22

Si desea simplemente confirmar todos los cambios que realizó, hacerlo a través de la Terminal debería solucionar el problema.

Abra la aplicación Terminal y cd en el directorio del proyecto, una vez allí, escriba el comando siguiente:

git commit -a 

Introduzca su mensaje de confirmación pulsando 'i' y escribiendo en ella, a continuación, pulse 'Esc', then ':', y tipo 'wq'

Todo hecho, su problema debería ser solucionado.

+0

Después de "git commit -a" apareció mi editor de texto. Solo inserte el mensaje de confirmación allí, guarde y cierre el archivo. – Abramodj

0

Tuve este problema después de agregar y luego eliminar subproyectos en un proyecto que estaba bajo control de fuente.

me fijo mediante el uso de la aplicación GitX, la selección de los Commit View, ONU-estructuración de los archivos ahora inexistentes en la lista Staged Changes, y luego seleccionando Discard Changes para los mismos archivos en la lista Unstaged Changes.

Luego tuve que eliminar el repositorio de la pantalla de Xcode Organiser-Repositories y reiniciar Xcode antes de que las cosas volvieran a funcionar. Xcode automáticamente vuelve a agregar el repositorio cuando el proyecto se vuelve a abrir.

Tal vez alguien con experiencia GIT puede proporcionar una alternativa de línea de comandos que realiza un "descartar todos los cambios que ya no están presentes en el disco" acción

0

que he tenido este problema porque de alguna manera se añadió una carpeta del proyecto a .gitignore, lo eliminé de allí y confié los archivos perdidos. Xcode no me mostró que la carpeta estaba en gitignore o que era diferente de las otras carpetas de ninguna manera.

3

Jader La respuesta de Feijo resuelve mi problema.

Sólo quiero sugerir una manera más fácil para añadir comentarios, sin todos estos pasos adicionales VI, simplemente añadiendo el parámetro -m:

git commit -a -m "Commit Message" 
+3

aún más corto, 'git commit -am" Mensaje de confirmación "' – Till

Cuestiones relacionadas