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


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.


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.


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.


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.


-6

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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.