Структура на хранилището Git
Основна структура на хранилището Git на вашия AlexHost VPS
Защо да използвате Git в AlexHost? Git е крайъгълен камък на контрола на версиите, а хостингът на вашите хранилища на AlexHost VPS ви дава пълен контрол с root достъп, ултрабързо NVMe хранилище и сигурна среда, защитена от DDoS. Независимо дали сте самостоятелен разработчик, или управлявате екип, гъвкавият VPS на AlexHost гарантира, че работните ви процеси в Git вървят гладко. В това ръководство е описана структурата на хранилището Git и как да го използвате на вашия сървър AlexHost.
1. Работна директория
Работната директория е мястото, където се намират действителните файлове във вашия проект. Когато клонирате хранилище на Git, получавате копие на всички проследявани файлове, които се поставят във вашата работна директория. Това е областта, в която активно редактирате файловете, правите промени и добавяте ново съдържание
- Променени файлове: Всеки файл, който редактирате в работната си директория, ще се счита за модифициран, докато не го преместите или не нулирате промените.
- Непроследявани файлове: Файловете, които все още не са проследени от Git, ще се появяват в работната директория като непроследени, докато не бъдат поставени и предадени.
2. Област за полагане на статии (индекс)
Областта за постановка (наричана още индекс) е междинно място, където се събират промените във файловете, преди да бъдат предадени в хранилището. Добавяте файлове или промени в зоната за поетапно съхранение с помощта на командата git add. Промените в зоната за съхранение ще бъдат част от следващото предаване
- Добавяне на промени в зоната за стартиранеgit add <файл>
- Преглед на зоната за стациониране: Можете да видите какво се намира в зоната за стациониране, като използвате git status.
3. Директория Git (.git папка)
Директорията Git, съхранявана в папката .git, е сърцето на всяко хранилище Git. Тя съдържа цялата съществена информация за историята, конфигурацията и текущото състояние на вашия проект. Тази директория се създава автоматично, когато инициализирате или клонирате хранилище Git
Основни компоненти на директорията .git:
- HEAD: Файл, който сочи към текущия commit във вашия клон.
- Клонове: Съдържа информация за клоновете в хранилището.
- Обекти: Съхранява всички обекти, като предавания, блобове (данни за файлове) и дървета (структура на директориите).
- Референции: Съдържа препратки към предавания, включително глави (клонове), тагове и клонове за отдалечено проследяване.
- Конфигурация: Конфигурационният файл за вашето локално хранилище, в който се съхраняват настройки като отдалечени обекти или информация за потребителя.
- Дневници: Съхранява дневници за всички дейности, като например предавания, проверки и пребазиране.
- Куки: Потребителски скриптове, които могат да задействат действия преди или след определени събития в Git (напр. commit, push).
4. История на предаванията
Всеки ангажимент е моментна снимка на вашето хранилище в определен момент от време. Акциите включват промени във файловете заедно с метаданни, като съобщението за акция, автора и времевия печат. Поправките формират историята на вашия проект
- Докладите се съхраняват в директорията .git/objects.
- Всеки commit сочи към предишния commit (с изключение на първия), образувайки свързана верига, която може да се визуализира като история на проекта.
5. Клонове
Клонът е указател към конкретен коммит, който ви позволява да работите едновременно по различни версии на проекта. По подразбиране Git започва с клон, наречен main (или master в по-старите версии)
- Указател на клон: Клоновете са просто указатели към даден ангажимент. Създаването на нов клон означава създаване на указател към текущия ангажимент, което ви позволява да правите нови ангажименти в този клон, без да засягате други клонове.
- HEAD: Указателят HEAD в Git показва текущия клон или коммит, върху който работите. Обикновено той сочи към последния commit в текущия клон.
6. Етикети
Таговете са препратки към конкретни точки в историята на Git, често използвани за отбелязване на версиите на изданията (напр. v1.0, v2.0). За разлика от клоновете, таговете не се актуализират с нови предавания
- Олекотени тагове: Това са прости указатели към даден ангажимент, подобно на клон.
- Анотирани тагове: Съдържат допълнителни метаданни, като например името на създателя на тага, дата и съобщение за тага.
7. Дистанционни
Дистанционното в Git е препратка към копие на вашето хранилище, което се хоства на друго място, често в платформи като GitHub, GitLab или Bitbucket. Отдалечените копия се използват за съвместна работа, като ви позволяват да изпращате промени към или да изтегляте промени от други копия на хранилището
- Произход: По подразбиране основното отдалечено хранилище се нарича origin.
8. Обекти в Git
Директорията с обекти в Git (.git/objects) съдържа четирите основни типа обекти, които съставляват историята на хранилището
- Blob: Съхранява действителното съдържание на даден файл.
- Дърво: Представлява директория, като съпоставя имената на файловете с обекти от типа blob и поддиректории (други обекти от типа дърво).
- Ангажимент: Съхранява метаданни за всяка промяна (автор, дата, съобщение) и сочи към обект от дърво.
- Етикет: Посочва към предаването и съхранява информация за тагъра и съобщението (в случай на анотирани тагове).
9. Куки
Git ви позволява да дефинирате потребителски скриптове (куки), които могат да се задействат на различни етапи от работния процес на Git. Тези скриптове могат да се стартират автоматично след или преди събития, като например предаване, избутване или сливане. Кукичките могат да налагат качеството на кода, да изпълняват тестове или да задействат CI/CD конвейери. Кукичките се съхраняват в директорията .git/hooks/
- Кукичка за предварително предаване: Изпълнява се, преди да бъде създадено предаване.
- Кукичка след създаване на коммит: Изпълнява се след създаването на коммит.
10. Дневници
Git съхранява дневници за всички действия в хранилището, като например предавания, проверки, сливания и връщания. Тези дневници помагат за отстраняване на грешки и преглед на действията, извършени в хранилището
- Git Reflog: Съхранява запис на всички промени в указателя HEAD, което ви позволява да се възстановите след действия като нулиране на клон.
Обобщение на структурата на хранилището на Git
- Работна директория: Съдържа файлове и директории в текущото им състояние.
- Област за престой (индекс): Където промените се поставят преди да бъдат предадени.
- Директория Git (.git): Съхранява основните данни, включително обекти, конфигурация и дневници.
- Коммитиране: Запис на промените с метаданни, които формират историята на проекта.
- Клонове: Връзки към конкретни предавания, които позволяват паралелна разработка.
- Етикети: Именувани препратки към конкретни предавания, обикновено за маркиране на версии.
- Отклонения: Препратки към хранилища, разположени на друго място за съвместна работа.
- Обекти: Основните компоненти в Git, включително блобове, дървета и ангажименти.
Като разбирате тази структура, можете да навигирате и да управлявате ефективно своето хранилище Git, осигурявайки безпроблемно сътрудничество и контрол на версиите по време на разработването на проекта.