¿Como ignoro un directorio para pull? – git

Pregunta:


se me presenta la siguiente situacion:
Yo tengo un sistema que funciona con apache y php, uso hojas de estilo en less, para simplificar tengo una estructura de carpetas asi:

rootDir/index.php
rootDir/img/
rootDir/css/
rootDir/less/
rootDir/js/

En el servidor de prueba funciona todo lo mas bien, cuando hago un cambio y esta listo lo pusheo a el servidor git.
Ahora bien, cuando quiero hacer un pull desde el servidor de produccion para hacer efectivos esos cambios en el otro entorno obtengo todos esos archivos.
El problema es que el directorio less no hace falta ya que estos se compilan en css, pero al hacer pull estos son traidos de todas formas. Quisiera que la estructura del servidor de produccion sea asi

rootDir/index.php
rootDir/img/
rootDir/css/
rootDir/js/

He intentado tanto modificar el arrchivo .gitignore en mi servidor de produccion para ignorar el directorio, lo cual no funciono, y tambien ejecutar el comando git update-index --assume-unchanged less/*, pero cuando ejecuto el comando git update-index --refresh este me avisa de que todos los archivos less necesitan una actualizacion.
Puedo borrarlos manualmente siempre que haga un pull, pero me gustaria evitarlo si es posible.


Edito mi pregunta para aclarar lo siguiente:
A mi me interesa que todos los archivos esten versionados, i.e. que el servidor git los almacene y no sean ignorados en un push, solo me interesa que no esten en el entorno de producción.

Preguntado por: Sacha

J. Rodríguez

Respuesta corta sería:

less/

Tenga en cuenta que si usa solo less ignorarán los archivos llamados less, mientras que si usa less/ ignorara el directorio como tal.

Git no ignora los archivos mientras lo tira. En su lugar, debe agregar estos archivos en sus archivos .gitignore, para que no se comprometan y se envíen a repositorios remotos.

Si estos archivos ya están en su repositorio remoto, entonces debe eliminarlos usando por ejemplo:

git rm --cached comun/main-local.php

git rm --cached comun/parametros-local.php

Si desea eliminar el directorio común, entonces en .gitignore agregar:

comun/**

Y elimina el directorio:

git rm --cached -r comun
  • Remover (rm).
  • Indice (–cached).
  • Recursivamente (-r).

Ahora haz un nuevo commit y push. Estos archivos se eliminarán del repositorio remoto también.

Aquí te dejo estos enlaces que pueden ayudarte también:

Una opción es especificar en tu archivo .gitignore (si no existe puedes crearlo) el directorio que deseas se ignore, en este caso el directorio:

/less 

el archivo .gitignore debe localizarse dentro de:

rootDir/

Revisa la documentación acerca de .gitignore.


Modifica el archivo .gitignore en tu copia local y lo subes al servidor.

Fuente

Tags:

Add a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *