Tengo un archivo gitignore que hace que git ignore los *.dll
archivos, y ese es realmente el comportamiento que quiero. Sin embargo, si quiero una excepción (es decir, para poder comprometerme foo.dll
), ¿cómo puedo lograr esto?
326
Respuestas:
Utilizar:
De gitignore :
fuente
*.dll
, y el gitignore de mi proyecto tiene!Libs/*.dll
pero eso no parece estar funcionando.!Libs/**/*.dll
.!**/Libs/*.dll
, dependiendo de la estructura de la carpeta.!foo.dll
que invalida el comando. Si agrego el comentario en una fila separada, funciona.Git ignora las carpetas si escribes:
pero no puede agregar excepciones si lo hace:
!/js/jquery
o!/js/jquery/
o!/js/jquery/*
Debes escribir:
y solo entonces puedes excepto subcarpetas como esta
fuente
!/js/jquery/xyzlib
, no será ignorado .../js/*
,!/js/jquery
,/js/jquery/*
,!/js/jquery/xyzlib
? Se siente como una forma bastante divertida de hacerlo ...Puedes simplemente
git add -f path/to/foo.dll
..gitignore
ignora solo los archivos para el seguimiento habitual y cosas comogit add .
fuente
-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
Para excluir todo en un directorio, pero algunos subdirectorios, haga lo siguiente:
Fuente: https://gist.github.com/444295
fuente
Simplemente agregue
!
antes de una regla de exclusión.Según la página de manual de gitignore :
fuente
!foo.dll
en .gitignore, o (¡cada vez!)git add -f foo.dll
fuente
Si está trabajando con Visual Studio y su
bin
archivo .dll se encuentra en una carpeta, deberá agregar una excepción para la carpeta bin en particular, antes de poder agregar la excepción para el archivo .dll. P.ejEsto se debe a que el
.gitignore
archivo predeterminado de Visual Studio incluye un patrón de ignorar para[Bbin]/
Este patrón está eliminando todas las carpetas bin (y, en consecuencia, su contenido), lo que hace que cualquier intento de incluir el contenido sea redundante (ya que la carpeta en sí ya se ignora).
Pude encontrar por qué mi archivo no se exceptúa al ejecutar
desde una ventana de Git Bash. Esto devolvió el
[Bbin]/
patrón.fuente
La solución depende de la relación entre la regla de ignorar git y la regla de excepción:
Archivos / Archivos en diferentes niveles o Archivos / Subcarpetas: puede hacer esto:
fuente
Desde Git 2.7.0 Git tendrá en cuenta las excepciones. De las notas oficiales de lanzamiento:
https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/2.7.0.txt
fuente