¿Deberías comprometer .gitignore en los repositorios de Git?

497

¿Crees que es una buena práctica comprometer .gitignore en un repositorio de Git?

A algunas personas no les gusta, pero creo que es bueno, ya que puedes rastrear el historial del archivo. ¿No es así?

Howard
fuente
38
si no es así, pon .gitignore en .gitignore ...
CharlesB
Posible duplicado de Ignorar el archivo .gitignore en sí mismo
Michael Freidgeim

Respuestas:

489

Normalmente sí, .gitignorees útil para todos los que quieran trabajar con el repositorio. En ocasiones querrás ignorar más cosas privadas (quizás a menudo creas LOGo algo así. En esos casos, probablemente no quieras forzar eso a nadie más.

Bruce Stephens
fuente
137
+1 Las "cosas privadas" se pueden mencionar en los archivos $GIT_DIR/info/excludeo ~/.gitconfigsegún corresponda.
WReach
55
Si ya tiene un archivo registrado y desea ignorarlo, Git no ignorará el archivo si agrega una regla más adelante. En esos casos, primero debe destrabar el archivo ejecutando el siguiente comando en su terminal:git rm --cached FILENAME
eli-bd
133

Normalmente te comprometes .gitignore. De hecho, personalmente voy tan lejos como para asegurarme de que mi índice esté siempre limpio cuando no estoy trabajando en algo. (no git statusdebe mostrar nada)

Hay casos en los que desea ignorar cosas que realmente no son específicas del proyecto. Por ejemplo, su editor de texto puede crear *~archivos de copia de seguridad automáticos , u otro ejemplo sería los .DS_Storearchivos creados por OS X.

Yo diría que si otros se quejan de esas reglas que abarrotan las suyas .gitignore, déjelos fuera y póngalos en un archivo de exclusión global.

Por defecto, este archivo reside en $XDG_CONFIG_HOME/git/ignore(predeterminado ~/.config/git/ignore), pero esta ubicación se puede cambiar configurando la core.excludesfileopción. Por ejemplo:

git config --global core.excludesfile ~/.gitignore

Simplemente cree y edite el archivo de exclusión global al contenido de su corazón; se aplicará a cada repositorio git en el que trabaje en esa máquina.

Stéphan Kochen
fuente
14
Siempre puede agregar # some commentlíneas al .gitignorearchivo para explicar por qué ignora algo. Al comentar cada línea es un poco excesivo, pero tengo secciones han marcado # IDE (Eclipse), # OS (Mac OS X)y # Generated (Perl). De esa manera, si alguien quiere usar un sistema operativo o IDE diferente, puede agregar una sección y todos podemos compartirla.
Stuart R. Jefferys
99
aprobado "Yo personalmente llego a asegurarme de que mi índice esté siempre limpio cuando no estoy trabajando en algo. (El estado de git no debería mostrar nada)"
SGhosh
44
Nótese bien. con Git moderno, el valor predeterminado core.excludesfilees ~/.config/git/ignore, conforme a la especificación del directorio base XDG
Jakub Narębski
1
+1 para global .gitignore: enormemente beneficioso cuando las personas con las que trabajas no están de acuerdo con el contenido de los .gitignorearchivos enviados o si deberían enviarse, y todos usamos toneladas de diferentes entornos de desarrollo que generan diferentes tipos de ruido.
Krease
1
davidwalsh.name/global-gitignore más información sobre el ignorar global
Frode Akselsen
11

Puse commit .gitignore, que es una cortesía para otros que pueden construir mi proyecto de que los siguientes archivos se derivan y deben ignorarse.

Usualmente hago un híbrido. Me gusta hacer que el archivo MAKE genere el archivo .gitignore ya que el archivo MAKE conocerá todos los archivos asociados con el proyecto derivado o no. Luego, tenga un proyecto de nivel superior .gitignore en el que se registre, que ignoraría los archivos .gitignore generados creados por el archivo MAKE para los distintos subdirectorios.

Entonces, en mi proyecto, podría tener un subdirectorio bin con todos los ejecutables creados. Luego, haré que mi archivo MAKE genere un .gitignore para ese directorio bin. Y en el directorio superior .gitignore que enumera bin / .gitignore. El de arriba es el que reviso.

Bitdiot
fuente
0

Confirmar .gitignore puede ser muy útil, pero debes asegurarte de no modificarlo demasiado a partir de entonces, especialmente si cambias regularmente de una rama a otra. Si lo hace, puede obtener casos en los que los archivos se ignoran en una rama y no en la otra, lo que le obliga a eliminar manualmente o cambiar el nombre de los archivos en su directorio de trabajo porque un pago falló, ya que sobrescribiría un archivo no rastreado.

Por lo tanto, sí, cometa su .gitignore, pero no antes de estar razonablemente seguro de que no cambiará mucho a partir de entonces.

usuario3464496
fuente
-6

Es una buena práctica al .gitignore menos crear sus productos (programas, * .o, etc.).

Jakub Narębski
fuente
11
Que no respondieron a la pregunta: ¿debería .gitignore propio ser " .gitignore'd"?
Charles Wood
66
Prestar atención, que no era la cuestión, y esto lo hace la respuesta lo que se preguntó: "es [que] una práctica buena para cometer .gitignore en un repositorio git?".
papercowboy
55
@cayuu, creo que la respuesta dice "es una buena práctica .gitignore" xyz, no veo cómo responde la pregunta. la pregunta es si .gitignore debe ser controlado por versión o no.
nightograph