2010-02-07 13 views
6

Utilizo git como mi sistema de control de versiones principal y recientemente comencé a usar git en mis proyectos de CakePHP. Este es mi archivo actual .gitignore:Uso de Git con su proyecto CakePHP

app/tmp 
vendors/ 

Tal como se usa en el repositorio git cakephp, pero esto causa un poco más de trabajo para mí la hora de implementar el proyecto a un servidor, porque no tengo que entrar y crear todo el app/tmp/subdirectorios a mano antes de que funcionen correctamente. ¿Hay alguna manera de configurarlo para ignorar los contenidos en estas carpetas, pero aún tenerlos bajo control git para que aparezcan cuando clono el repositorio en el directorio hoted?

También he tenido un problema con el reinicio de mi índice de git mientras estoy trabajando en él, lo que me obliga a tener que hacer muchas más confirmaciones de las necesarias, ¿alguna idea sobre eso también?

+0

¿Puede explicarme más sobre su problema con el índice git? ¿Qué pasos reproducirán el problema? –

+0

Probablemente quiera las respuestas de http://stackoverflow.com/questions/115983/how-do-i-add-an-empty-directory-to-a-git-repository con respecto a cómo agregar los directorios, pero ignore sus contenidos . –

+0

No estoy seguro de las actividades que causan los problemas, pero lo que parece ser aleatorio, todos los archivos en el índice se muestran como eliminados, luego tengo que volver a agregar todos los archivos al índice. – trobrock

Respuesta

11

Git almacena solo archivos, no directorios, por lo que puede, por ejemplo, agregar un archivo oculto en ese directorio y confirmarlo.

  1. Quitar app/tmp/desde .gitignore
  2. aplicación touch/tmp/.keep
  3. git add app/tmp/.keep
  4. git commit
  5. Añadir app/tmp/a. gitignore
+0

Ok sí, eso es lo que solía hacer, simplemente no podía recordar cómo hacerlo. – trobrock

4

Como se mencionó, git solo almacena archivos, no directorios. Por defecto, el archivo .gitignore de cake ignora todos los contenidos en la carpeta tmp para evitar que los archivos tmp se agreguen a su repositorio.

Usted puede (y debe) sin embargo hacer esto después de crear un proyecto:

cd /my/app 
git add -f tmp 

que hacer esto:

$ git status 
# On branch master 
# 
# Changes to be committed: 
# (use "git rm --cached <file>..." to unstage) 
# 
# new file: tmp/cache/models/empty 
# new file: tmp/cache/persistent/empty 
# new file: tmp/cache/views/empty 
# new file: tmp/logs/empty 
# new file: tmp/sessions/empty 
# new file: tmp/tests/empty 

Como tal, su estructura de carpetas tmp está listo para ser comprometido, pero se ignorarán (continuarán) todos los demás archivos de su directorio tmp.

1

Mi archivo .gitignore.

tmp/* 
[Cc]onfig/core.php 
[Cc]onfig/database.php 

webroot/files/ 
webroot/img/photos/ 

!empty 
.DS_Store 

Si usted notará que tengo! Vacío, que me salva de la creación de archivos .keep todo lo que hace es tan SVN. Por último, también verás que utilizo esta configuración para los proyectos cakePHP 1.x y 2.x anotados por [Cc]. Tengo algunas configuraciones de carpetas en las que almaceno archivos de usuario, así que siempre los ignoro también. Finalmente, .DS_Store ignora las vistas en miniatura creadas por MAC para mi proyecto.

+0

¿Qué significa! Empty? – dynamic