Saltar al contenido

Ignorar .classpath y .project de Git

Solución:

Si el .project y .classpath ya están comprometidos, entonces deben eliminarse del índice (pero no del disco)

git rm --cached .project
git rm --cached .classpath

Entonces el .gitignore funcionaría (y ese archivo se puede agregar y compartir a través de clones).
Por ejemplo, este gitignore.io/api/eclipse entonces funcionará el archivo, que incluye:

# Eclipse Core      
.project

# JDT-specific (Eclipse Java Development Tools)     
.classpath

Tenga en cuenta que puede utilizar un “Directorio de plantillas” al clonar (asegúrese de que sus usuarios tengan una variable de entorno $GIT_TEMPLATE_DIR configurado en una carpeta compartida accesible para todos).
Esa carpeta de plantilla puede contener una info/exclude expediente, con ignorar las reglas que desea que se cumplan todos repositorios, incluidos los nuevos (git init) que cualquier usuario usaría.


Como lo comentó Abdollah

Cuando cambia el índice, debe confirmar el cambio y presionarlo.
Luego, el archivo se elimina del repositorio. Entonces los novatos no pueden verificar los archivos .classpath y .project desde el repositorio.

Agregue las siguientes líneas en .gitignore y coloque el archivo dentro de la carpeta de su proyecto

/target/
/.classpath
/*.project
/.settings
/*.springBeans

La solución de git para tales escenarios está configurando BROCA PARA SALTAR EL ÁRBOL DE TRABAJO. Ejecute solo el siguiente comando:

git update-index --skip-worktree .classpath .gitignore

Se usa cuando quieres que git ignorar los cambios de archivos que ya están administrados por git y que existen en el índice. Este es un caso de uso común para archivos de configuración.

Corriendo git rm --cached no funciona para el escenario mencionado en la pregunta. Si simplifico la pregunta, dice:

Como tener .classpath y .project en el repositorio mientras que cada uno puede cambiarlo localmente y git ignora este cambio?

Como comenté en la respuesta aceptada, el inconveniente de git rm --cached es que provoca un cambio en el índice, por lo que debe confirmar el cambio y luego enviarlo al repositorio remoto. Como resultado, .classpath y .project no estarán disponibles en el repositorio mientras el PO quiera que estén allí para que cualquiera que clone el repositorio por primera vez pueda usarlo.

¿Qué es SKIP-WORKTREE BIT?

Basado en git documentaion:

El bit de salto de árbol de trabajo se puede definir en una oración (larga): al leer una entrada, si está marcada como salto de árbol de trabajo, Git finge que la versión de su directorio de trabajo está actualizada y lee la versión del índice en su lugar. Aunque este bit se parece a bit asumido sin cambios, su objetivo es diferente de los bits de asumir sin cambios. Skip-worktree también tiene prioridad sobre el bit de asumir sin cambios cuando ambos están establecidos.

Más detalles están disponibles aquí.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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