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.
+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:
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.
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.
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.
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.
Que no respondieron a la pregunta: ¿debería .gitignorepropio 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.
Respuestas:
Normalmente sí,
.gitignore
es útil para todos los que quieran trabajar con el repositorio. En ocasiones querrás ignorar más cosas privadas (quizás a menudo creasLOG
o algo así. En esos casos, probablemente no quieras forzar eso a nadie más.fuente
$GIT_DIR/info/exclude
o~/.gitconfig
según corresponda.git rm --cached FILENAME
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. (nogit status
debe 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_Store
archivos 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 lacore.excludesfile
opción. Por ejemplo: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.
fuente
# some comment
líneas al.gitignore
archivo 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.core.excludesfile
es~/.config/git/ignore
, conforme a la especificación del directorio base XDG.gitignore
: enormemente beneficioso cuando las personas con las que trabajas no están de acuerdo con el contenido de los.gitignore
archivos enviados o si deberían enviarse, y todos usamos toneladas de diferentes entornos de desarrollo que generan diferentes tipos de ruido.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.
fuente
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.
fuente
Es una buena práctica al
.gitignore
menos crear sus productos (programas, * .o, etc.).fuente
.gitignore
propio ser ".gitignore
'd"?