2011-09-26 13 views
10

Estoy tratando de ignorar las carpetas xcuserdata que xcode 4 modifica y siguen apareciendo a pesar de estar en mi archivo .gitignore..gitignore no ignorará el directorio

Mi archivo .gitignore como una línea:

xcuserdata 

Sin embargo, tan pronto como la interfaz de usuario cambia nada en Xcode, me sale esto:

# modified: XXXXXXXX.xcodeproj/project.xcworkspace/xcuserdata/XXXX.xcuserdatad/UserInterfaceState.xcuserstate 

me han hecho un ...

git rm -r --cached XXXXXXXX.xcodeproj/project.xcworkspace/xcuserdata/XXXX.xcuserdatad/UserInterfaceState.xcuserstate 

... ... y trató

git rm -r --cached XXXXXXXX.xcodeproj/project.xcworkspace/xcuserdata 

... seguido de una confirmación. He hecho esto cerca de 10 veces y simplemente no desaparecerá y será ignorado. Sigue volviendo.

¿Qué estoy haciendo mal? Claramente hay algo que no entiendo. El archivo se agregó al repositorio cuando lo creé por primera vez y ahora estoy tratando de deshacerme de él.

Solo quiero que ese archivo quede completamente sin seguimiento, como si nunca se hubiera agregado al repositorio.

Respuesta

17

Después de hacer

git rm -r --cached XXXXXXXX.xcodeproj/project.xcworkspace/xcuserdata 

cheque que git status te dice que los archivos bajo la carpeta que se han eliminado. Luego, después de su compromiso, asegúrese de que git diga que no hay nada que comprometer.

El hecho de que haya hecho esto "10 veces" y que viene como modificado muestra que no lo está haciendo bien y que la carpeta (en realidad los archivos dentro de ella) todavía se rastrean.

Aparte de eso, el contenido de .gitignore parece estar bien e incluso he confirmado en mi repositorio que funciona.

+0

Creo que sé lo que estaba pasando. Dado que el archivo se había modificado, todavía no se había hecho un 'add' en él, por lo que la 'rm' seguida de la 'confirmación' no estaba tomando. No tiene 100% de sentido, pero una vez que lo hice con el archivo antes de que xcode lo modificara, todo funcionó. –

-3

trate de usar xcuserdata/en su .gitignore

+0

Trató eso, no hace la diferencia. –

2

Si no puede empujar a su cometen sólo porque UserInterfaceState.xcuserstate se ha modificado, he aquí una solución rápida:

  1. Abrir el Organizador, vaya a repositorios, copiar su la de comprometerse código (algo así como f01a2147218d by username)
  2. Abra la terminal, vaya a la carpeta de su proyecto, haga git reset --hard f01a2147218d
  3. ¡Empuje la confirmación!
Cuestiones relacionadas