В процеса на използване на Git предпочитаме файлове като логове, временни файлове, компилирани междинни файлове и др. да не се подават в хранилището за код, затова трябва да зададем съответните правила за игнориране, за да игнорираме commit на тези файлове.
Git игнорира метода за потвърдяване на файловете
Има три начина да игнорираш файлове, които не искаш да комитваш в Git.
Дефинирай .gitignore файла в твоя Git проект
Това се управлява чрез дефиниране на .gitignore файл в папка в проекта, където са дефинирани съответните правила за игнориранеТекуща папкаGit commit поведението на файла под .gitignore файловете могат да се изпращат в публични хранилища, което означава, че всички разработчици под проекта споделят определен набор от правила за игнориране. В .gitingore файла задайте правило за игнориране на всеки ред, следвайки съответния синтаксис. Например:
Посочете изключващите файлове в настройките на Git проекта
Това е само временна спецификация на поведението на проекта, която изисква редактиране на .git/info/exclude файла под текущия проект и след това записване на файла, към който трябва да се игнорира комита. Обърнете внимание, че коренната директория на игнорираните файлове, посочени по този начин, е коренът на проекта.
.gitignore файл, който дефинира глобалния Git
Освен че можете да дефинирате .gitignore файлове в проекта си, можете да настроите и глобален git .gitignore файл, който да управлява поведението на всички Git проекти. Този подход не се споделя между различните разработчици на проекти и е поведение на ниво Git приложение, което се наблюдава върху проекта.
Това също изисква създаване на съответния .gitignore файл, който може да бъде поставен навсякъде. След това конфигурирайте Git със следната команда:
Git игнорира правилата
За подробни правила за игнориране, моля, вижте официалната английска документация на адреса:Входът към хиперлинк е видим.
Git игнорира приоритета на правилата
В .gitingore файла задайте правило за игнориране за всеки ред и Git проверява за множество източници при игнориране на правила, с следния приоритет (от най-висок към най-нисък):
- Прочетете наличните правила за игнориране от командния ред
- Правилата, дефинирани от настоящия указател
- Правилата, дефинирани от родителската директория, са рекурсивни
- $GIT_DIR/info/изключване файл
- core.excludesfile
Git игнорира синтаксиса на съвпадение на правила
В .gitignore файла синтаксисът за правилото за игнориране за всеки ред е следният:
- Интервали, които не съвпадат с произволни файлове, могат да се използват като разделители и да бъдат изчиствани с обратна коса черта
- # Коментарът за идентификация на файла в началото може да бъде избегнат с обратна коса черта
- ! Идентификацията на схемата в началото е отрицателна и файлът ще бъде включен отново, ако родителската директория на файла е изключена, използвайте ! няма да бъде включен отново. Бягството може да се направи с обратна коса черта
- / 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
- / 开始的模式匹配项目跟目录
- Ако шаблонът не съдържа косата черта, той съвпада съдържанието спрямо текущия път на .gitignore файла, а ако шаблонът не е в .gitignore файла, спрямо корена на проекта
- ** Съвпадащите многостепенни каталози могат да се използват в началото, средата и края
- ? Универсално съвпадение на отделни персонажи
- [ ] Универсален списък с съвпадения на отделни герои
Чести примери за съвпадение:
- bin/: игнорира папката bin под текущия път, всичко под тази папка се игнорира, не bin файлът
- /bin: 忽略根目录下的bin文件
- /*.c: 忽略 cat.c,不忽略 build/cat.c
- debug/*.obj: Игнорирай debug/io.obj, не игнорирай debug/common/io.obj и tools/debug/io.obj
- **/foo: игнорирай /foo, a/foo, a/b/foo и т.н.
- a/**/b: игнорирай a/b, a/x/b, a/x/y/b и т.н.
- !/bin/run.sh: Не игнорирайте run.sh файлове в директорията на кошчетата
- *.log: Игнорирай всички .log файлове
- config.php: 忽略当前路径的 config.php 文件
Правилото .gitignore не влиза в сила
.gitignore може да игнорира само файлове, които не са проследени първоначално, а модифицирането на .gitignore е неефективно, ако някои файлове вече са включени във версията.
Решението е да се изтрие локалният кеш (да се промени в състояние без проследяване) преди да се направи комит:
(Край)
|