Tengo un archivo gitignore que hace que git ignore los archivos *.dll
, y ese es en realidad el comportamiento que quiero. Sin embargo, si quiero una excepción (es decir, para poder confirmar foo.dll
), ¿cómo puedo lograr esto?git ignorar excepción
Respuesta
Uso:
*.dll #Exclude all dlls
!foo.dll #Except for foo.dll
De gitignore:
un prefijo opcional! que niega el patrón; cualquier archivo coincidente excluido por un patrón anterior se incluirá nuevamente. Si un patrón negado coincide, esto anulará las fuentes de patrones de precedencia inferiores.
Véase también formulario de respuesta @Matiss Jurgelis - es importante agregar – Dan
¿Puedo agregar la excepción a ¿Mi gitignore de proyecto y no mi gitignore global? Por ejemplo, si quisiera incluir todas las DLL en un directorio? Mi gitignore_global tiene '* .dll' en él, y mi proyecto gitignore tiene'! Libs/*. Dll' pero eso no parece estar funcionando. – jkinz
@jkinz, deberías probar '! Libs/**/*. Dll'. –
Simplemente agregue !
antes de una regla de exclusión.
De acuerdo con la gitignore man page:
patrones tienen el siguiente formato:
...
- un prefijo opcional! que niega el patrón; cualquier archivo coincidente excluido por un patrón anterior se incluirá nuevamente. Si un patrón negado coincide, esto anulará las fuentes de patrones de precedencia inferiores.
Puede simplemente git add -f path/to/foo.dll
.
.gitignore
ignora sólo los archivos para el seguimiento y cosas habituales como git add .
Solo para obtener más detalles, la '-f' le dice a git que fuerce la adición de este archivo en el repositorio ya que podría ignorarlo primero debido a su' .gitignore' – RPDeshaies
Lo cual es genial si solo tiene un archivo, menos útil si necesita un patrón – Liam
!foo.dll
en .gitignore, o (cada vez!) git add -f foo.dll
Para excluir todo en un directorio, pero algunos subdirectorios, haga lo siguiente:
wp-content/*
!wp-content/plugins/
!wp-content/themes/
Fuente: https://gist.github.com/444295
Git hace caso omiso de las carpetas si escribe:
/js
pero no puede agregar excepciones si lo hace: !/js/jquery
o !/js/jquery/
o !/js/jquery/*
Debe escribir:
/js/*
y sólo entonces puede exceptuar subcarpetas como esta
!/js/jquery
Dado que Git 2.7.0 Git tendrá en cuenta las excepciones. A partir de las notas de la versión oficial:
- permitir que un después "!/ Abc/def" para anular una anterior '/ abc' que aparece en el mismo archivo .gitignore para que sea más fácil expresar 'todo en/abc directorio es ignorado, a excepción de ...'.
https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/2.7.0.txt
hace que esto funcione para cualquier persona? no parece funcionar para mi – Ankur
la solución depende de la relación entre el git ignorar regla y la regla de excepción:
- archivos/archivos en el mismo nivel: utilizar el @Skilldrick solution .
- Carpetas/Subcarpetas: use el @Matiss Jurgelis solution.
archivos/archivos en diferentes niveles o archivos/subcarpetas: usted puede hacer esto:
*.suo *.user *.userosscache *.sln.docstates # ... # Exceptions for entire subfolders !SetupFiles/elasticsearch-5.0.0/**/* !SetupFiles/filebeat-5.0.0-windows-x86_64/**/* # Exceptions for files in different levels !SetupFiles/kibana-5.0.0-windows-x86/**/*.suo !SetupFiles/logstash-5.0.0/**/*.suo
Si está trabajando con Visual Studio y el .dll que pasa a estar en una carpeta bin
, luego tendrá que agregar una excepción para la carpeta bin particular, antes de poder agregar la excepción para el archivo .dll. P.ej.
!SourceCode/Solution/Project/bin
!SourceCode/Solution/Project/bin/My.dll
Esto se debe a que el valor por defecto de Visual Studio .gitignore
archivo incluye un patrón de ignorar para [Bbin]/
Este patrón zapping todas las carpetas bin (y por lo tanto su contenido), lo que hace que cualquier intento de incluir los contenidos redundantes (ya que la carpeta ya se ignoró).
que fue capaz de encontrar por qué mi archivo no se estaba ejecutando exceptúa
git check-ignore -v -- SourceCode/Solution/Project/bin/My.dll
desde una ventana Git Bash. Esto devolvió el patrón [Bbin]/
.
- 1. git ignorar el directorio especificado a excepción de
- 2. git ignorar excepción que no funciona como se desea
- 3. Git: Ignorar archivos rastreados
- 4. Java - ignorar excepción y continuar
- 5. git rastrear, ignorar, borrar, deshacer
- 6. git ignorar múltiples archivos coincidentes
- 7. Git no puede ignorar .DS_Store definido en ignorar global
- 8. Python: cómo ignorar una excepción y continuar?
- 9. Nlog LogException parece ignorar la excepción
- 10. Git: ¿cómo ignorar los directorios ocultos?
- 11. Ignorar ORIG_HEAD en zsh git autocompletar
- 12. git culpa - ignorar los cambios no confirmados
- 13. Archivos de Git .Net para ignorar
- 14. Git: Ignorar archivos controlados por la versión
- 15. Cómo hacer GIT ignorar mis cambios
- 16. Git ignorar archivos siendo rastreado sin eliminarlos
- 17. git ignorar todo, pero algunos subdirectorios
- 18. Ignorar SVN ¿ignorar ... posible?
- 19. ¿Cómo ignorar los archivos existentes y comprometidos en git?
- 20. ¿Qué tan grave es ignorar la excepción Oracle DUP_VAL_ON_INDEX?
- 21. Python Ignorar excepción y volver a donde estaba
- 22. C++ Ramificaciones de ignorar la excepción del constructor
- 23. git: cambiar de rama e ignorar cualquier cambio sin confirmar
- 24. GIT - No se puede ignorar el archivo .suo
- 25. git agregar todos excepto ignorar archivos en el archivo .gitignore
- 26. Git - Ignorar ciertos archivos contenidos en carpetas específicas
- 27. Cómo ignorar archivos que comienzan con # en git
- 28. Ignorar archivo .pyc en el repositorio de git
- 29. Problemas para ignorar archivos previamente ignorados en Git repo
- 30. GIT - ignorar los archivos basándose en el modo
posible duplicado de [Excepciones en .gitignore] (http://stackoverflow.com/questions/2415873/exceptions-in-gitignore) – wallyk