¿Cómo hacer para que git ignore el directory en mi server?

Digamos que mi repository se ve así:

myApp public index.html ... tests foo.js ...

Quiero que la carpeta de tests sea ​​enviada a GitHub pero NO a mi server. ¿Cómo logro esto?

Como quiero que me envíen /tests/* a GitHub, no puedo simplemente agregar /tests/* probar /tests/* a mi file .gitignore.

Intenté agregar /tests/ probar /tests/ al file .git/info/exclude en mi server, luego borré el contenido de /tests pero esto no funcionó.

Como dijo Schwern , si todavía quieres usar git para lanzamientos, la mejor opción es crear otra twig para lanzamientos. Los pasos pueden ser:

En tu máquina:

 A-->B-->C-->D -development \ \ `->v1---`->v2 -releases 

Crear la twig de lanzamientos

 git branch releases git checkout releases 

A continuación, puede eliminar la carpeta de testing en la twig de versiones

 git rm myApp/test git commit 

y combinarlo con la twig de desarrollo sin la carpeta:

 git merge --no-commit development 

entonces puedes llevar todo el proyecto a GitHub. Luego en el server puedes hacer:

 git pull origin releases 

Para get solo la twig de versiones , tendrás esta estructura en tu server.

 ->v1----->v2 -releases 

.gitignore y .git/info/exclude no ignoran los cambios. Solo dicen qué considerar sin seguimiento. Una vez que se realiza un seguimiento de un file, no tienen ningún efecto.

Parece que estás usando Git como una herramienta de lanzamiento y te has encontrado con uno de los muchos problemas con eso. El control de versiones es una herramienta de lanzamiento pobre. Sugeriría usar un sistema de lanzamiento / empaque en su lugar.

Puede haber beneficios al usar un pago de git en producción. Por un lado, si algo se calienta en caliente será obvio. Pero necesitarás un process de lanzamiento.

  • Haga una twig de lanzamiento fuera de su twig de desarrollo.
  • Elimine el directory de testings en la twig de publicación.
  • Verifique la twig de publicación en su server de producción.

Cuando estés listo para lanzar …

  • git checkout release
  • git merge --no-commit devel
  • Deseche el directory de testings si ha sido readded por la fusión.
  • Comprometerse con la fusión.
  • ssh a producción y extracción.