Есть ли способ заставить git
добавить файл, несмотря на .gitignore
файл?
Принудительно добавить, несмотря на файл .gitignore
Ответы (4)
См. man git-add
:
-f, --force
Allow adding otherwise ignored files.
Так что запустите это
git add --force my/ignore/file.foo
echo "/foo" >> .gitignore; echo "bar" > foo; git add foo # should throw an error; git add -p foo # works
(нельзя вставлять символы новой строки в комментарии, выполнять команды 1 на 1
- person Daniel Böhmer; 05.11.2011
git status
не отображал --force
добавленный файл, я смог git commit
мои последние изменения ранее проигнорированного файла. Я использую CentOS 7 git версии 2.25.0. Спасибо!
- person tash; 25.11.2020
Несмотря на рабочее решение Даниэля Бемера, Охад Шнайдер в комментарии предложил лучшее решение:
Если файл обычно игнорируется, и вы добавляете его принудительно - он может быть случайно проигнорирован снова в будущем (например, когда файл удаляется, выполняется фиксация и файл создается заново.
Вы должны просто отменить игнорирование его в файле .gitignore следующим образом: Отменить игнорирование подкаталогов игнорируемые каталоги в Git
.gitignore
использовании !specific-file-name.txt
без иерархии папок, таким образом отслеживание будет следовать за файлом вокруг репо.
- person Merlin; 27.10.2017
Другой способ добиться этого - временно отредактировать файл gitignore, добавить файл и затем вернуть обратно gitignore. Я чувствую себя немного взломанным
Как отменить игнорирование некоторого выбранного содержимого (файлов или папок) в игнорируемой папке
Если вы проигнорировали содержимое такого каталога:
/ignored_dir/* # ignore the **contents of** this dir!
тогда вы можете UNignore файл или каталог внутри него следующим образом:
!/ignored_dir/special_file_to_include # Do NOT ignore this file--DO include it!
!/ignored_dir/special_dir_to_include/ # And do NOT ignore this dir--DO include it!
НО, если вы проигнорировали ignored_dir напрямую следующим образом:
/ignored_dir/ # ignore this directory **directly**
тогда вышеуказанные !
правила, которые пытаются UN-игнорировать некоторые файлы или папки, НЕ будут работать! Итак, в этом случае переключитесь с использования этого стиля: /ignored_dir/
на этот стиль: /ignored_dir/*
, а затем добавьте свои !
правила, как показано выше, в UNignore что-то в этом каталоге!
Использованная литература:
- Отменить игнорирование подкаталогов игнорируемых каталогов в Git
- [мое репозиторий eRCaGuy_dotfiles с примером файла .gitignore, содержащего эти заметки и демонстрации]: eRCaGuy_dotfiles / .gitignore
.gitignore
префикс!
, например!dont/ignore/this/file
). - person Ohad Schneider   schedule 07.09.2015.gitignore
(скажем, добавить.gitignore
в ту же папку, что и dll, или одну выше, или что-то в этом роде)? - person Ohad Schneider   schedule 17.02.2016