Не всеки файл във вашия проект трябва да бъде контролиран от версия. Разберете кои типове файлове трябва да изключите от вашето изходно репо.
Контролът на версиите е жизненоважен инструмент за проследяване на промените във вашата кодова база, но не винаги искате да проследявате всеки файл.
За да избегнете бъркотията и да намалите риска от разпространение на чувствителна информация, можете да използвате файл, наречен .gitignore. Този файл указва кои файлове и директории Git не трябва да индексира.
Определянето кои файлове да се включат в .gitignore може да бъде предизвикателство, особено ако сте нов в разработката. Разберете кои файлове трябва да добавите към вашия .gitignore за по-плавен работен процес на Git.
Създаване на файл .gitignore
За да има някакъв ефект вашият .gitignore файл, трябва да сте инициализирали Git във вашия проект.
Можете да инициализирате Git, като изпълните командата по-долу във вашия терминал:
git init
Тази команда създава ново хранилище на Git за вашия проект, в скрита поддиректория „.git“, която съдържа всички файлове и директории, необходими за контрол на версиите на вашия проект.
За да изпълните тази команда, трябва да имате Git е инсталиран във вашата система.
След това създайте своя .gitignore файл, като изпълните командата по-долу:
докосване.gitignore
Изпълнението на командата по-горе създава нов файл, „.gitignore“ в текущата ви директория. Можете да изключите файл от Git, като добавите името на файла или пътя на файла (ако файлът е в различна директория от .gitignore файл).
Git не трябва да проследява всеки файл във вашия проект, а проследяването на някои файлове може да доведе до непредвидени проблеми. Това са някои от файловете, които трябва да добавите към вашия .gitignore.
1. Конфигурационни файлове
Конфигурационните файлове съхраняват настройки и други параметри, които вашите приложения използват, за да дефинират и персонализират поведението си. Тези файлове често съхраняват низове за свързване към база данни, API ключове и друга чувствителна информация, която не трябва да излагате във вашето Git хранилище.
Ако включите конфигурационни файлове във вашето хранилище, всеки, който има достъп до него, може да види тяхното съдържание. Това може да включва чувствителна информация, която може да доведе до пробиви в сигурността и други проблеми.
За да изключите конфигурационни файлове от вашето Git хранилище, добавете конкретни имена на файлове или папки към вашите .gitignore файл.
Например, можете да добавите реда по-долу към вашия .gitignore файл за игнориране a .env файл.
.env
2. Изграждане на артефакти
Артефактите за компилация са компилирани или генерирани файлове, създадени, когато изграждате вашия проект. Тези файлове обикновено се намират в a "мишена" или "строя" указател.
Артефактите за изграждане могат да включват компилирани Java класове, JAR файлове, WAR файлове, двоични файлове, пакети за разпространение, отчети, регистрационни файлове и други, генерирани по време на процеса на изграждане.
Като цяло е добра практика да изключите артефакти за компилация от вашето Git хранилище, защото те могат да бъдат много големи. Те също могат да бъдат по-малко преносими от вашите изходни файлове, подходящи само за конкретна среда. Включването им във вашето хранилище може да раздуе размера на вашето хранилище и да направи по-бавно клонирането и работата с него.
За да изключите артефакти за изграждане от вашето Git хранилище, добавете "мишена/" или "строя/" директория към вашия .gitignore файл.
Например:
# .gitignore
мишена/
изграждане/
3. Файлове за интегрирана среда за разработка
Файловете на интегрираната среда за разработка (IDE) са конфигурационни файлове, метаданни на проекти и други файлове, генерирани от вашата IDE, когато създавате или отваряте проект. Тези файлове са специфични за всяка IDE. Вашето IDE използва тези файлове, за да конфигурира настройките на проекта.
Тези файлове не са необходими за изграждане или изпълнение на вашето приложение и често могат да причинят проблеми, ако се ангажират в споделено Git хранилище. Например, различни хора във вашия екип може да използват различни IDE или версии и ангажирането на специфични за IDE файлове може да причини конфликти при сливане и да затрудни съвместната работа по проекта.
Тъй като тези файлове са специфични за IDE, файловете, които да включите във вашия .gitignore файл ще зависи от вашата IDE. Тук са Препоръките за .gitignore на GitHub за някои популярни IDE. Можете да търсите избраната от вас IDE и да добавите очертаните файлове към вашата .gitignore файл.
4. Файлове на зависимости и пакети
Файловете със зависимости и пакети са файлове, които съдържат информация за зависимостите и пакетите, използвани от вашето приложение. Различни инструменти за изграждане, като напр мениджъра на пакети на възли (npm), генерирайте тези файлове.
Например, ако използвате npm за управление на зависимости за JavaScript проект, той ще създаде "node_modules" в главната директория на вашия проект. Директорията съдържа всички инсталирани зависимости за вашия проект.
Тази директория може да стане много голяма, особено ако вашият проект има много зависимости или някои зависимости имат големи размери на файлове. Като изключим "node_modules" от вашето Git хранилище, можете да я поддържате чиста и да намалите размера й.
За да избегнете добавянето на "node_modules" във вашето Git хранилище, добавете името му към вашия .gitignore файл:
#.gitignore
node_modules/
5. Файлове на операционната система
Вашата операционна система и други системни инструменти могат да генерират файлове при нормална употреба. Те могат да включват регистрационни файлове, временни файлове и системни конфигурационни файлове. Пример е Thumbs.db файл на Windows и неговия еквивалент на macOS, the .DS_Store файл.
Като цяло е добра практика да изключите файловете на операционната система от вашето Git хранилище, тъй като те са специфични за вашата местна среда и могат да се различават между различните компютри и операции системи.
GitHub препоръча насоки за .gitignore за Windows, macOS, и Linux.
Значението на контрола на версиите
Използването на контрол на версиите може значително да подобри вашия работен процес и да намали грешките и конфликтите, които могат да възникнат при работа върху кодова база. С контрола на версиите можете лесно да проследявате промените в кода, да ги преглеждате и да си сътрудничите безпроблемно с членовете на екипа.
Винаги обаче трябва да изключвате определени файлове, като конфигурационни файлове, IDE файлове и OS файлове. Това ще намали размера на вашето хранилище и ще гарантира, че няма да изтече чувствителна информация.