usar una omitir ignorar funciona example como comando carpeta archivos git gitignore

una - ignorar archivos git



ignorando cualquier directorio ''bin'' en un proyecto git (13)

Tengo una estructura de directorios como esta:

.git/ .gitignore main/ ... tools/ ... ...

Dentro de main y tools, y de cualquier otro directorio, en cualquier nivel, puede haber un directorio ''bin'', que quiero ignorar (y quiero ignorar todo lo que hay debajo de él). He probado cada uno de estos patrones en .gitignore pero ninguno de ellos funciona:

/**/bin/**/* /./**/bin/**/* ./**/bin/**/* **/bin/**/* */bin/**/* bin/**/* /**/bin/* #and the others with just * at the end too

¿Puede alguien ayudarme? El primer patrón (el que creo que debería estar funcionando) funciona bien si hago esto:

/main/**/bin/**/*

Pero no quiero tener una entrada para cada directorio de nivel superior y no quiero tener que modificar .gitignore cada vez que agrego uno nuevo.

Esto está en Windows usando el último msysgit.

EDITAR: una cosa más, hay archivos y directorios que tienen la subcadena ''bin'' en sus nombres, no quiero que se ignoren :)


Agregar ** / bin / al archivo .gitignore hizo el truco por mí (Nota: la carpeta bin no se agregó al índice).


Antes de la versión 1.8.2, ** no tenía ningún significado especial en el .gitignore . A partir de la versión 1.8.2, git admite ** para significar cero o más subdirectorios (consulte las notas de la versión ).

La forma de ignorar todos los directorios llamados bin en cualquier lugar debajo del nivel actual en un árbol de directorios es con un archivo .gitignore con el patrón:

bin/

En la página de man , hay un ejemplo de ignorar un directorio llamado foo usando un patrón análogo.

Editar: Si ya tiene alguna carpeta bin en su índice de git que ya no desea rastrear, debe eliminarlas explícitamente. Git no detendrá el seguimiento de las rutas que ya se están siguiendo solo porque ahora coinciden con un nuevo patrón .gitignore . Ejecute una carpeta eliminar ( rm ) solo de índice ( --cached ) recursivamente ( -r ). Ejemplo de línea de comando para carpeta de raíz:

git rm -r --cached bin


Como un aviso;

Si piensa que .gitignore no funciona de una manera (por lo tanto, agregue la carpeta foo/* en ella, pero el git status sigue mostrando el contenido de esa carpeta como modificado o algo así), entonces puede usar este comando;

git checkout -- foo/*


Creo que vale la pena mencionar para los principiantes git:

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 deshacer el seguimiento del archivo ejecutando el siguiente comando en su terminal:

git rm --cached

Entonces, si desea agregar para ignorar algunos directorios en su repositorio local (que ya existe) después de editar .gitignore, desea ejecutar esto en su directorio raíz

git rm --cached -r . git add .

Básicamente, ''actualizará'' su repositorio local y anulará los archivos ignorados.

Ver:

http://git-scm.com/docs/git-rm ,

https://help.github.com/articles/ignoring-files/


El ** nunca funcionó correctamente antes, pero desde git 1.8.2 (8 de marzo de 2013) , parece ser mencionado y apoyado explícitamente:

Los patrones en los archivos .gitignore y .gitattributes pueden tener **/ , como un patrón que coincide con 0 o más niveles de subdirectorio .

Por ejemplo, " foo/**/bar " coincide con " bar " en " foo " en sí mismo o en un subdirectorio de " foo ".

En su caso, eso significa que esta línea podría ahora ser compatible:

/main/**/bin/


El .gitignore de tu sueño parece ser:

bin/

en el nivel superior


Literalmente, ninguna de las respuestas realmente funcionó para mí; El único que funcionó para mí fue (en Linux):

**/bin (yes without the / in the end) git version 2.18.0


No lo vi mencionado aquí, pero esto parece ser sensible a las mayúsculas y minúsculas. Una vez que cambié a / Bin, los archivos fueron ignorados como se esperaba.



para 2.13.3 y en adelante, escribir solo bin en su archivo .gitignore debe ignorar el bin y todos sus subdirectorios y archivos

compartimiento


[Bb]in resolverá el problema, pero ... Aquí hay una lista más extensa de cosas que debes ignorar (lista de muestra por GitExtension):

#ignore thumbnails created by windows Thumbs.db #Ignore files build by Visual Studio *.user *.aps *.pch *.vspscc *_i.c *_p.c *.ncb *.suo *.bak *.cache *.ilk *.log [Bb]in [Dd]ebug*/ *.sbr obj/ [Rr]elease*/ _ReSharper*/


Paso 1: Agregue el siguiente contenido al archivo .gitignore.

# User-specific files *.suo *.user *.userosscache *.sln.docstates # Build results [Dd]ebug/ [Dd]ebugPublic/ [Rr]elease/ [Rr]eleases/ x64/ x86/ bld/ [Bb]in/ [Oo]bj/ # Visual Studio 2015 cache/options directory .vs/

Paso 2: Asegúrate de tener efecto

Si el problema persiste, es porque la configuración en .gitignore solo puede ignorar los archivos que originalmente no fueron rastreados . Si algunos archivos ya se han incluido en el sistema de control de versiones, la modificación de .gitignore no es válida. Para resolver este problema por completo, debe abrir Git Bash o la Consola del administrador de paquetes (vea la captura de pantalla a continuación) para ejecutar los siguientes comandos en la carpeta raíz del repositorio.

$ git rm -r --cached . $ git add . $ git commit -m ''Update .gitignore''

Entonces el problema quedará completamente resuelto.


[Bb]in/

coincide con mayúsculas y minúsculas