2012-04-16 24 views
55

¿Es posible agregar el archivo .gitignore al .gitignore?Añadir .gitignore a gitignore

.gitignore 

No funciona aunque

no quieren ver en los archivos editados

+3

¿por qué le gustaría hacer eso? solo comprometa sus cambios. '.gitignore' se supone que es parte de su repositorio, listando patrones de archivos que son basura para el proyecto. – KurzedMetal

+1

'.gitignore' debe ser parte de su repositorio, para que todos en su equipo ignoren o verifiquen en los mismos archivos. El hecho de que '.gitignore' esté en las carpetas de códigos en alguna parte no significa que tenga que implementarlo. –

+0

posible duplicado de [¿Cómo le digo a Git que ignore ".gitignore"?] (Http://stackoverflow.com/questions/767147/how-do-i-tell-git-to-ignore-gitignore) –

Respuesta

83

El archivo .gitignore impide que todos los que colaboran en un proyecto incluyan algunos archivos comunes en un proyecto, como generados archivos de caché. Por lo tanto, no debe ignorar .gitignore, ya que su propósito es ser incluido en el repositorio.

Si desea ignorar archivos en solo un repositorio, pero sin confirmar la lista de ignorar, puede agregarlos al .git/info/exclude en ese repositorio.

Si desea ignorar algunos archivos en cada repo en su máquina puede crear el archivo ~/.gitignore_global y luego ejecutar

git config --global core.excludesfile ~/.gitignore_global 
1

Sí se puede; aún lo ve en los archivos editados porque git todavía lo rastrea, y los archivos rastreados por git siempre se marcan como modificados incluso si están en .gitignore. Tan simplemente untrack él.

¿Pero por qué no comprometer o restablecer los cambios que tiene en él? Es una forma mucho mejor de eliminarlo del estado ... También tenga en cuenta que cualquier clon nuevo de su reserva tendrá que agregar su .gitignore, que puede ser molesto.

+0

Sí, y tendrá que eliminarlo por separado de git por 'got rm --cached .gitignore', probablemente. – Tadeck

+0

el git rm --cached .gitignore está quitando de git. Eso es destructivo y no deseable. ¿Cómo se ignora .gitignore para el clon local? – javadba

11

No hay realmente una buena razón para hacer esto. Si desea que los archivos se ignoren solo para su clon, agréguelos a .git/info/exclude, no .gitignore

16

Un .gitignore puede ignorar sí si nunca se ha verificado en:

[email protected]:~$ git --version 
git version 1.7.9.5 
[email protected]:~$ git init temp 
Initialized empty Git repository in /home/mhaase/temp/.git/ 
[email protected]:~$ cd temp 
[email protected]:~/temp$ touch .gitignore foo bar baz bat 
[email protected]:~/temp$ git status 
# On branch master 
# 
# Initial commit 
# 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
#  .gitignore 
#  bar 
#  bat 
#  baz 
#  foo 
[email protected]:~/temp$ echo "foo" >> .gitignore 
[email protected]:~/temp$ echo ".gitignore" >> .gitignore 
[email protected]:~/temp$ git status 
# On branch master 
# 
# Initial commit 
# 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
#  bar 
#  bat 
#  baz 
nothing added to commit but untracked files present (use "git add" to track) 

Si marca en .gitignore (antes de decirle que se ignore), siempre aparecerá en estado de git, aunque más tarde lo modifique para ignorarlo.

+0

Exactamente, este es mi caso. Quiero tener un '.gitignore' local para trabajar con' git-svn', que nadie debería ver. Así que simplemente lo agregué a sí mismo y simplemente funcionó. Pero luego busqué en Google para ver si algunas personas tensas explicarán a los demás cómo esto es "malo". Esta respuesta debería ser aceptada, y luego también recomendaría las sugerencias '.git/info/exclude'. Por lo tanto, es necesario que no se rastree ... No es muy sorprendente, al menos si alguna vez ha sido "subvertido" (svn). –

+0

Tengo el archivo '.gitignore' primero tengo una copia de seguridad. Luego uso 'git rm .gitignore' y confirmo ese cambio. Por último, agrega y confirma el archivo '.gitignore' nuevamente con la regla para' .gitignore'. ¡Funciona! – qzhang