У меня есть файл gitignore, который заставляет git игнорировать *.dll
файлы, и это именно то поведение, которое мне нужно. Тем не менее, если я хочу исключение (то есть, чтобы иметь возможность фиксировать foo.dll
), как я могу этого достичь?
326
Ответы:
Использование:
Из гитиньоре :
источник
*.dll
в нем, а gitignore моего проекта есть,!Libs/*.dll
но, похоже, это не работает.!Libs/**/*.dll
.!**/Libs/*.dll
, в зависимости от структуры папок.!foo.dll
сделало недействительной. Если я добавлю комментарий в отдельной строке, это будет работать.Git игнорирует папки, если вы пишете:
но он не может добавлять исключения, если вы делаете:
!/js/jquery
или!/js/jquery/
или!/js/jquery/*
Вы должны написать:
и только тогда вы можете, кроме подпапок, как это
источник
!/js/jquery/xyzlib
не будут игнорироваться .../js/*
,!/js/jquery
,/js/jquery/*
,!/js/jquery/xyzlib
? Похоже, довольно забавный способ сделать это ...Вы можете просто
git add -f path/to/foo.dll
..gitignore
игнорирует только файлы для обычного отслеживания и тому подобноеgit add .
источник
-f
git сообщает о принудительном добавлении этого файла в репозиторий, так как он может сначала проигнорировать его из-за вашего.gitignore
Чтобы исключить все в каталоге, кроме некоторых подкаталогов, выполните следующие действия:
Источник: https://gist.github.com/444295
источник
Просто добавьте
!
перед правилом исключения.Согласно странице руководства gitignore :
источник
!foo.dll
в .gitignore, или (каждый раз!)git add -f foo.dll
источник
Если вы работаете с Visual Studio и ваш .dll находится в
bin
папке, то вам нужно добавить исключение для самой конкретной папки bin, прежде чем вы сможете добавить исключение для файла .dll. НапримерЭто связано с тем, что
.gitignore
файл Visual Studio по умолчанию содержит шаблон игнорирования для[Bbin]/
Этот шаблон выгружает все папки bin (и, следовательно, их содержимое), что делает любую попытку включить содержимое избыточным (поскольку сама папка уже игнорируется).
Я смог выяснить, почему мой файл не был исключен при запуске
из окна Git Bash. Это вернуло
[Bbin]/
шаблон.источник
Решение зависит от отношения между правилом git ignore и правилом исключения:
Файлы / Файлы на разных уровнях или Файлы / Подпапки: вы можете сделать это:
источник
Начиная с Git 2.7.0, Git будет учитывать исключения. Из официальных заметок о выпуске:
https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/2.7.0.txt
источник