Tengo muchos proyectos en mi solución .Net. Me gustaría excluir todas las carpetas "bin / Debug" y "bin / Release" (y sus contenidos), pero aún así incluir la carpeta "bin" en sí y cualquier dll que contenga.
.gitignore con "bin /" ignora las carpetas "Debug" y "Release", pero también cualquier dll contenido en la carpeta "bin".
"bin / Debug" o "bin / Release" en el archivo .gitignore no excluye los directorios, a menos que califique completamente el patrón de ignorar como "Solución / Proyecto / bin / Debug", que no quiero hacer como yo necesitaré incluir este patrón completo para cada proyecto en mi solución, así como agregarlo para cualquier proyecto nuevo agregado.
¿Alguna sugerencia?
Respuestas:
¿Has probado los comodines?
Con la versión 1.8.2 de git, también puede usar el
**
comodín para que coincida con cualquier nivel de subdirectorios:fuente
**
. Debería estar arreglado por ahora. enlacePuede usar .gitignore en el nivel superior para ignorar todos los directorios del proyecto con el mismo nombre. Por ejemplo:
Esto debería actualizarse de inmediato para que sea visible cuando hagas el estado de git. Asegúrese de que estos directorios no estén ya agregados a git, ya que eso anulará los ignorados.
fuente
$GIT_DIR/.git/info/exclude
archivo OP .git rm -rf DirectoryName/
La cuestión no está preguntando por ignorar todos los subdirectorios, pero no pudo encontrar la respuesta en cualquier lugar, por lo que voy a publicar:
*/*
.fuente
git add
ignorar un directorio y todos los archivos en todos los subdirectorios de ese directorio. He tratadodirname/
,dirname/*
,dirname/**
,dirname/*/*
, incluso en la desesperacióndirname/*/*/*
,dirname/*/*/*/*
,dirname/*/*/*/*/*
.*/*
ignora todos los subdirectorios pero no los archivos en el directorio actual. Ignorar un subdirectorio específico es el uso normal de gitignore.dirname
,dirname/
ydirname/*
todo funciona para mí. ¿Ya se ha comprometido algo en ese directorio?.git
directorio entre intentos,git init
luegogit add --all .
(también lo he intentado sin--all
usar), usando 1.9.4.msysgit.1. Cada subdirectorio no vacío en mi directorio con nombre se agrega al índice (marcado en TortoiseGit ygit status
). No hay líneas relevantes para.gitignore
comenzar,!
pero debe haber algún conflicto. Resuelto por ahora eliminando las carpetas duranteadd
. Supongo que esto es algo que requerirá un poco más de investigación para proporcionar la información necesaria para diagnosticar. Gracias por asegurarme que no estoy malinterpretando la sintaxis.Todas las respuestas anteriores son válidas, pero algo que no creo que se mencione es que una vez que agrega un archivo de ese directorio al repositorio, no puede ignorar ese directorio / subdirectorio que contiene ese archivo (git ignorará esa directiva )
Para ignorar los archivos ya agregados, ejecute
De lo contrario, primero tendrá que eliminar todos los archivos del directorio de destino del repositorio, y luego puede ignorar esa carpeta.
fuente
Además de poner las entradas correctas en su archivo .gitignore, si está tratando de ignorar algo que ya se agregó al repositorio, debe hacerlo
git rm -r /path/to/dir
y confirmarlo antes de agregar el directorio a su archivo .gitignore. De lo contrario, lo único que git ignorará es su directiva de ignorar.fuente
La única forma en que conseguí que esto funcionara en mi máquina fue hacerlo de esta manera:
Observe cómo debe permitir explícitamente el contenido para cada nivel que desee incluir. Entonces, si tengo subdirectorios 5 profundos debajo de los temas, todavía necesito explicarlo.
Esto es del comentario de @ Yarin aquí: https://stackoverflow.com/a/5250314/1696153
Estos fueron temas útiles:
También intenté
y
**/wp-content/themes/**
o
/wp-content/themes/**/*
Nada de eso funcionó para mí tampoco. Un montón de rastro y error!
fuente
Para excluir contenido y subdirectorios:
Para excluir todos los subdirectorios pero tomar el contenido, agregue "/":
fuente
Para ignorar todos los subdirectorios, simplemente puede usar:
Esto funciona a partir de la versión 1.8.2 de git.
fuente
La forma genérica de ignorar todas las subcarpetas, mientras se sigue rastreando los archivos que están en el
/bin
directorio, sería agregar la siguiente línea al archivo .gitignore de su proyecto:Si desea ignorar solo subcarpetas con nombre en particular, puede hacer:
nótese bien. si el
bin
directorio no está en la raíz de su proyecto (junto con el archivo .gitignore), en lugar de, por ejemplo,bin/*/*
puede que necesitespath/to/bin/*/*
fuente