2010-08-14 37 views
6

Estoy usando git con capistrano.Capistrano carga el directorio .git

Me inicializar mi proyecto dentro de mi carpeta en mi máquina local como tal:

git init 

entonces empujado el proyecto del directorio del servidor Me llamó entonces cap deploy funciona El despliegue, excepto que carga el local. la estructura de carpetas git, así como mi .gitignore y Capfile en una carpeta de acceso público.

Aquí está mi archivo gitignore:

.DS_Store 
uploads/**/* 
Capfile 
.gitignore 
.git/**/* 

Esto no parece hacer el truco. ¿Alguna ayuda?

Gracias!


Editar: actualización de archivos .gitignore:

estrategia de despliegue Se cambió para exportar:

set :deploy_via, :export 

Esto funciona para ignorar la carpeta .git, pero el contenido de mi archivo .gitignore verá más adelante todavía no se tienen en cuenta

.DS_Store 
includes/php/config.php 
/uploads 
Capfile 
.git 





EDIT 2 (solución): Editar 1 en combinación con la siguiente hizo el truco. Los archivos que ya se agregaron antes de aparecer en el archivo .gitignore se cargarán constantemente. Digamos que tenía el siguiente archivo .gitignore.

.DS_Store 
includes/php/config.php 

Entonces me encontré con los siguientes comandos:

git add . 
git commit -a -m 'some commit' 

Entonces decidí añadir a mi archivo .gitignore por lo que ahora se ve así:

.DS_Store 
includes/php/config.php 
Capfile 

Por otra parte, me encontré :

git add . 
git commit -a -m 'another commit' 

Ahora vería que .DS_Store y includes/php/config.php no se han subido, pero el Capfile tiene ... Esto es lo que me sucedió en mi pregunta original. El motivo: creo que el archivo .gitignore se tiene en cuenta solo cuando se agrega (es decir, git add .). Si ya agregué archivos y los puse en el archivo .gitignore, ya se habrían agregado al proyecto. Tendría que usar el comando git rm para eliminarlos. Acabo de empezar de nuevo con un nuevo .git repo y eso resolvió el problema, pero no tiene que hacerlo; solo puede eliminar los archivos que ya ha agregado pero que ahora quiere ignorar con el comando git rm.

Seleccioné la respuesta que me ayudó a llegar a esta conclusión como la correcta, aunque la solución completa se acaba de detallar más arriba.

+0

¿Está 'git' ignorando los archivos que quiere que' git' ignore? –

+0

está ignorando un archivo de configuración que quiero ignorar, pero no carpetas enteras. ¿Estoy haciendo algo mal? –

Respuesta

16

¿Cuál es su estrategia de implementación?

¿Tiene la configuración de Capistrano para excluir el archivo .git? si está utilizando set :deploy_via, :copy a continuación, asegúrese de añadir lo siguiente:

set :copy_exclude, [".git/*", ".svn/*", ".DS_Store"]

De lo contrario usar set :deploy_via, :export que debe ignorar las carpetas de control de fuente

http://www.capify.org/index.php/Understanding_Deployment_Strategies

+0

que funcionó para ignorar la carpeta .git, pero mi archivo .gitignore aún no se tiene en cuenta. Por favor, vea editar –

+0

¿tiene 'set: scm,: git' en su implementación? – zzawaideh

1

En cuanto a una similar question, lo que parece no necesita los selectores de comodines y solo puede tener:

uploads/ 

Debe realizar la implementación a través de :git en Capistrano y hacer una exportación. Básicamente es un git clone y luego simplemente borra el directorio .git.

Su problema no tiene mucho que ver con Cap realmente. Asegúrese de que su archivo .gitignore esté funcionando correctamente.

Cuestiones relacionadas