¿Es eficaz .gitignore y limpia la estrategia?

Me sigo encontrando con un pequeño inconveniente que me gustaría evitar. Si miro el set de todos los files que quiero que git ignore, puedo dividirlos en dos grupos básicos:

  1. Archivos que necesito mantener en mi sistema de files para trabajar en el proyecto (files de metadatos del proyecto IDE, files de configuration que son particulares para mi estación de trabajo, etc.)

  2. Archivos que se generan y que no necesito y, generalmente, abarrotan mi sistema de files cuando los agrego a .gitignore. (salida comstackda, volcados del núcleo, etc.)

Idealmente, me gustaría que Git ignore todos estos files para que cuando vea mis cambios no planificados pueda get una visión clara de las cosas que cambié sin mucho ruido. Si agrego todos esos files a .gitignore puedo get una idea clara de lo que he cambiado cuando hago un git status . (este es el estado en el que estoy ahora)

Sin embargo, también me gustaría poder usar git clean para eliminar todos los files en la categoría 2 sin eliminar todos los files en la categoría 1. Si solo agrego los files en la categoría 1, puedo usar git clean -x para eliminar todas las cosas sin seguimiento. Desafortunadamente, eso complica el git status .

Alternativamente, puedo agregar todos los files en la categoría 2, pero termino teniendo que recordar manualmente no agregar / confirmar mis files específicos de la estación de trabajo. git status es bastante abarrotado continuamente, pero no tan malo.

¿Hay alguna manera de que pueda armonizar estas tres cosas?

  1. Obtenga una image clara de los files que me importan con el git status
  2. Elimina todos los files que no me importan con git clean
  3. Guarde todos los files sin seguimiento que no quiero compartir cuando ejecuto git clean

Eche un vistazo a los detalles finos de la página man de gitignore . Incluye detalles sobre este caso.

Elija el estuche que desee.


En qué file colocar un patrón depende de cómo se debe usar el patrón. Los patrones que deberían ser controlados por la versión y distribuidos a otros repositorys a través de clon (es decir, files que todos los desarrolladores querrán ignorar) deberían ir a un file .gitignore .

Los patrones que son específicos de un repository particular pero que no necesitan compartirse con otros repositorys relacionados (por ejemplo, files auxiliares que viven dentro del repository pero son específicos del flujo de trabajo de un usuario) deben ir al $GIT_DIR/info/exclude .

Los patrones que un usuario quiere que Git ignore en todas las situaciones (por ejemplo, copy de security o files temporales generados por el editor de elección del usuario) generalmente entran en un file especificado por core.excludesfile en el ~/.gitconfig del usuario.