Git игнорирование определенных файлов и директорий
#9 суббота, 1 июля 2023 г. 4 минут(ы) 305 слов
.gitignore это специальный файл, который используется Git'ом для игнорирования определенных файлов и директорий, которые не должны быть включены в репозиторий. В .gitignore файле вы указываете шаблоны для файлов и директорий, которые должны быть проигнорированы.
Вот пример простого .gitignore файла:
# Ignore all .txt files
*.txt
# Ignore all files in the log directory
/log/
# But do not ignore log.txt, even though you are ignoring .txt files above
!/log.txt
В этом примере Git будет игнорировать все .txt файлы, все файлы в директории log, но он не будет игнорировать log.txt.
Это полезно, когда у вас есть файлы или директории, которые создаются в процессе работы вашего проекта (например, временные файлы, логи, кеш, файлы, специфические для среды разработки), которые не должны быть включены в ваш репозиторий.
.gitignore файл должен быть размещен в корневой директории вашего репозитория.
Пример .gitignore
# Visual Studio 2015/2017 cache/options directory
.vs/
# Build results
[Dd]ebug/
[Rr]elease/
[Xx]64/
[Xx]86/
[Bb]uild/
*.7z
/output/
!projects/3rd-party-libs/raylib-4.2.0/parser/output/
/projects/win32-client/output/
/projects/win32-server/output/
/projects/android-client/android.raylib_game/
/projects/android-client/*.apk
В вашем примере:
- .vs/ Git будет игнорировать директорию .vs, которую обычно создает Visual Studio для хранения настроек и файлов кэша.
- [Dd]ebug/, [Rr]elease/, [Xx]64/, [Xx]86/, [Bb]uild/ эти строки игнорируют директории, связанные с процессами сборки и отладки в различных конфигурациях.
- *.7z эта строка заставляет Git игнорировать все файлы с расширением .7z.
- /output/ эта строка игнорирует директорию output в корневом каталоге репозитория.
- !projects/3rd-party-libs/raylib-4.2.0/parser/output/ оператор ! в начале строки отменяет игнорирование. Таким образом, даже если директория output игнорируется, директория projects/3rd-party-libs/raylib-4.2.0/parser/output/ будет включена в репозиторий.
- /projects/win32-client/output/, /projects/win32-server/output/ эти строки игнорируют конкретные директории output.
- /projects/android-client/android.raylib_game/ эта строка игнорирует директорию android.raylib_game.
- /projects/android-client/*.apk эта строка игнорирует все файлы с расширением .apk в директории projects/android-client/.
Имейте в виду, что Git обрабатывает шаблоны .gitignore относительно места, где находится файл .gitignore. Если файл .gitignore находится в поддиректории вашего репозитория, то все пути будут интерпретироваться относительно этой директории.