¿Qué es .gitignore exactamente?

Acabo de crear un repository de Github y me preguntaba para qué era el file .gitignore . Comencé por no crear uno, pero agregué uno debido al hecho de que la mayoría de los repositorys tienen uno. ¿Necesito tener uno? ¿Puedo / debo simplemente ignorarlo, o tiene un uso? Hice algunas investigaciones sobre el tema, pero no pude encontrar una explicación concreta.

.gitignore le dice a git qué files (o patrones) debe ignorar. Por lo general, se usa para evitar la asignación de files transitorios desde su directory de trabajo que no son útiles para otros queueboradores, como productos de compilation, files temporales creados por IDE, etc.

Puedes encontrar todos los detalles aquí .

Es una list de files que desea que git ignore en su directory de trabajo.

Supongamos que está en una Mac y tiene files .DS_Store en todos sus directorys. Desea que Git los ignore, por lo que agrega .DS_Store como una línea en .gitignore. Y así.

Los documentos de Git le dirán todo lo que necesita saber: http://git-scm.com/docs/gitignore

Cuando realiza una confirmación, no desea include accidentalmente files temporales ni crear carpetas específicas. Por lo tanto, use un .gitignore enumere los elementos que desea ignorar.

Además, lo que es más importante, el git status es uno de los commands más frecuentemente utilizados en el que desea que el git status enumere los files que se han modificado.

Querrá que su list de git status vea limpia de los files no deseados. Por ejemplo, cambié a.cpp, b.cpp, c.cpp, d.cpp & e.cpp Deseo que mi git status a.cpp, b.cpp, c.cpp, d.cpp & e.cpp lo siguiente:

 git status a.cpp b.cpp c.cpp d.cpp e.cpp 

No quiero el git status para listr files cambiados como este con los files de objects intermedios y los files de la carpeta de compilation

 git status a.cpp b.cpp c.cpp d.cpp e.cpp .DS_Store /build/program.o /build/program.cmake 

Por lo tanto, para git status para listr estos files temporales intermedios y comprometerlos accidentalmente en el repository, debería crear un .gitignore que todos .gitignore . Todo lo que necesito hacer es enumerar los files y carpetas en el .gitignore que deseo excluir de la .gitignore .

Lo siguiente es mi .gitignore para evitar el .gitignore de files innecesarios

 /*.cmake /*.DS_Store /.user /build 

Hay files en los que no quieres que Git se registre. Git ve cada file en su copy de trabajo como una de tres cosas:

  1. rastreado: un file que se ha organizado o confirmado previamente;
  2. no rastreado: un file que no se ha organizado o confirmado; o
  3. ignorado: un file que se le ha pedido explícitamente a Git que ignore.

Los files ignorados generalmente son artefactos construidos y files generados por la máquina que pueden derivarse de su fuente de repository o que, de lo contrario, no deberían comprometerse. Algunos ejemplos comunes son:

  • cachings de dependencia, como los contenidos de /node_modules o /packages
  • código comstackdo, como .pyc .o , .pyc y .class
  • comstackr directorys de salida, como /bin , /out o /target
  • files generados en time de ejecución, como .log , .lock o .tmp
  • files ocultos del sistema, como .DS_Store o .DS_Store
  • files de configuration IDE personales, como .idea/workspace.xml

Los files ignorados se rastrean en un file especial llamado .gitignore que se registra en la raíz de su repository. No hay un command explícito de ignorar git: en su lugar, el file .gitignore debe editarse y confirmarse manualmente cuando tiene nuevos files que desea ignorar. .gitignore files .gitignore contienen patrones que coinciden con los nombres de file en su repository para determinar si deben ignorarse o no. Aquí hay un ejemplo de file .gitignore . Para más detalles mira este enlace