2011-04-23 17 views
354

¿Crees que es una buena práctica comprometer .gitignore en un repositorio de Git?¿Debería comprometer .gitignore en los repositorios Git?

Algunas personas no les gusta, pero creo que es bueno, ya que puede seguir el historial del archivo. ¿No es así?

+29

si no lo tiene, ponga .gitignore en .gitignore ... – CharlesB

+0

Posible duplicado de [Ignore el archivo .gitignore en sí mismo] (http://stackoverflow.com/ questions/767147/ignore-the-gitignore-file-itself) –

Respuesta

369

Normalmente sí, .gitignore es útil para todos los que quieran trabajar con el repositorio. En ocasiones usted querrá hacer caso omiso de las cosas más privadas (tal vez a menudo crea LOG o algo así. En esos casos, es probable que no quiere forzar a que en cualquier otra persona.

+114

+1 Las "cosas privadas" se pueden mencionar en los archivos '$ GIT_DIR/info/exclude' o' ~/.gitconfig' según corresponda. – WReach

103

Por lo general, hace cometer .gitignore. De hecho , Yo personalmente voy tan lejos como para asegurarme de que mi índice esté siempre limpio cuando no estoy trabajando en algo. (git status no 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ían los archivos .DS_Store creados por OS X.

yo diría que, si otros se quejan de esas reglas estorbar encima de su .gitignore, dejarlos fuera y en lugar de ponerlos en un archivo excluye mundial:

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

Después, simplemente crear y editar ~/.gitignore al contenido de su corazón ; se aplicará a todos los repositorios de git en los que trabajes en esa máquina.

+12

Siempre puedes agregar líneas '# some comment' al archivo' .gitignore' para explicar _por qué_ estás ignorando algo. Comentar cada línea es un poco exagerado, pero tengo secciones tituladas '# IDE (Eclipse)', '# OS (Mac OS X)' y '# Generated (Perl)'. De esa forma, si alguien quiere usar un SO o IDE diferente, puede agregar una sección y todos podemos compartirla. –

+4

thumbs up for "Yo personalmente voy tan lejos como para asegurarme de que mi índice esté siempre limpio cuando no estoy trabajando en algo. (El estado de git no debe mostrar nada)" – SGhosh

+4

Nb. con Git moderno, el valor predeterminado para 'core.excludesfile' es' ~/.config/git/ignore', conforme a la especificación de directorio base XDG –

-1

Es una buena práctica para .gitignoreal menos sus productos de compilación (programas, * .o, etc.).

+10

Eso no respondió a la pregunta: ¿debería '.gitignore'_self_ ser" '.gitignore''d"? –

+6

Preste atención, esa no era la pregunta, y esto ** no responde lo que se le preguntó: "¿es una buena práctica enviar .gitignore a un repositorio de Git?". – papercowboy

+3

@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 la versión o no. – nightograph

8

Pongo commit .gitignore, que es una cortesía para otros que pueden construir mi proyecto que los siguientes archivos se derivan y deben ser ignorados.

Suelo hacer un híbrido. Me gusta hacer que makefile 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 que ingrese, que ignoraría los archivos .gitignore generados creados por el archivo MAKE para los diversos subdirectorios.

Por lo tanto, en mi proyecto, podría tener un subdirectorio bin con todos los ejecutables incorporados. Luego, haré que mi archivo MAKE genere un .gitignore para ese directorio bin. Y en el directorio superior .gitignore que muestra bin/.gitignore. El que está arriba es el que yo controlé.