Ігнараванне файлаў у Git
У праектах часта сустракаюцца файлы, якія мы не хацелі б захоўваць у сістэме Git. Гэта могуць быць часовыя файлы, якія ствараюцца вашым кодам, файлы з кэшам, а таксама файлы з паролямі.
Мы можам прымусова прымусіць
Git ігнараваць такія папкі і файлы.
Гэта робіцца з дапамогай спецыяльнага
файла .gitignore, які размяшчаецца
ў папцы з вашым праектам.
У гэтым файле на кожным радку трэба пісаць шлях да файла або папкі, якія мы хочам ігнараваць. Давайце паглядзім на прыкладах, які тут дапушчальны сінтаксіс.
Прыклад
Касая рыса перад імем файла адпавядае файлу ў корані рэпазіторыя:
/debug.log
Для прыкладу будуць праігнараваны наступныя файлы:
- debug.log
Але не:
- logs/debug.log
Прыклад
Без косай рысы ў пачатку будуць ігнаравацца файлы і ў папках:
debug.log
Для прыкладу будуць праігнараваны наступныя файлы:
- debug.log
- logs/debug.log
Прыклад
Без косай рысы ў канцы будуць ігнаравацца і файлы без пашырэння, і папкі з такім імем:
logs
Для прыкладу будуць праігнараваны наступныя файлы:
- logs
- logs/debug.log
- logs/latest/foo.bar
- build/logs
- build/logs/debug.txt
Прыклад
З косай рысай у канцы будуць ігнаравацца толькі папкі:
logs/
Для прыкладу будуць праігнараваны наступныя папкі:
- logs/
- logs/debug.log
- logs/latest/foo.bar
- build/logs
- build/logs/debug.txt
Прыклад
Две зорачкі ў пачатку папкі прымусяць ігнараваць усе папкі якія змяшчаюць такую папку ў шляху:
**/logs
Для прыкладу будуць праігнараваны наступныя файлы:
- logs/debug.log
- logs/monday/foo.bar
- build/logs/debug.log
Прыклад
Дзве зорачкі можна таксама выкарыстоўваць для супастаўлення файлаў на аснове іх назвы і назвы бацькоўскай папкі:
**/logs/debug.log
Для прыкладу будуць праігнараваны наступныя файлы:
- logs/debug.log
- build/logs/debug.log
Але не:
- logs/build/debug.log
Прыклад
Адна зорачка — гэта шаблон, які можа адпавядаць як некалькім сімвалам, так і ніводнаму:
*.log
Для прыкладу будуць праігнараваны наступныя файлы:
- debug.log
- foo.log
- .log
- logs/debug.log
Прыклад
Даданне клічніка ў пачатак шаблону адмяняе дзеянне шаблону. Калі файл адпавядае нейкаму шаблону, але пры гэтым таксама адпавядае адмяняючаму шаблону, указанаму пасля, такі файл не будзе ігнаравацца:
*.log
!important.log
Для прыкладу будуць праігнараваны наступныя файлы:
- important.log
Але не:
- file.log
Прыклад
Знак пытання адпавядае строга аднаму сімвалу:
debug?.log
Для прыкладу будуць праігнараваны наступныя файлы:
- debug0.log
- debugg.log
Але не:
- debug10.log
Прыклад
Квадратныя дужкі адпавядаюць аднаму сімвалу з указанага набору:
debug[01].log
Для прыкладу будуць праігнараваны наступныя файлы:
- debug0.log
- debug1.log
Але не:
- debug2.log
- debug01.log
Прыклад
Квадратныя дужкі можна таксама выкарыстоўваць для ўказання адпаведнасці аднаму сімвалу з зададзенага дыяпазону:
debug[0-9].log
Для прыкладу будуць праігнараваны наступныя файлы:
- debug0.log
- debug1.log
Але не:
- debug10.log
Прыклад
Клічнік можна выкарыстоўваць для ўказання адпаведнасці любому сімвалу, акрамя сімвалаў з указанага набору:
debug[!01].log
Для прыкладу будуць праігнараваны наступныя файлы:
- debug2.log
Але не:
- debug0.log
- debug1.log
- debug01.log
Прыклад
Дыяпазоны могуць быць лічбавымі або літарнымі:
debug[a-z].log
Для прыкладу будуць праігнараваны наступныя файлы:
- debuga.log
- debugb.log
Але не:
- debug1.log
Прыклад
Дзве зорачкі адпавядаюць мноству каталогаў або ніводнаму:
logs/**/debug.log
Для прыкладу будуць праігнараваны наступныя файлы:
- logs/debug.log
- logs/monday/debug.log
- logs/monday/pm/debug.log
Прыклад
Шаблоны можна выкарыстоўваць і ў назвах каталогаў:
logs/*day/debug.log
Для прыкладу будуць праігнараваны наступныя файлы:
- logs/monday/debug.log
- logs/tuesday/debug.log
Але не:
- logs/latest/debug.log
Практычныя задачы
Зрабіце так, каб ігнараваліся
файлы з папкі cache.
Зрабіце так, каб ігнараваліся
файлы з папак cache і tmp.
Зрабіце так, каб ігнараваўся
файл err.txt і папка tmp.