diff --git a/README.md b/README.md index 7a20aae..87a6f4e 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,282 @@ Git дозволяє безпечно керувати кодом, відсте
-2. ??? +2. Чим Git відрізняється від інших систем контролю версій, наприклад, SVN або Mercurial? + +#### GIT + +- **Розподіленість:** у Git кожен клон репозиторію містить повну історію, на + відміну від централізованих VCS (SVN). + +- **Швидкість:** локальні операції (commit, diff, log) виконуються дуже швидко. + +- **Гнучке керування гілками:** lightweight branches і швидке злиття + (merge/rebase). + +- **Зберігання змін:** Git зберігає снімки (snapshots) файлів, а не тільки + дельти, як у SVN. + +- **Широка інтеграція:** популярність Git забезпечує підтримку в CI/CD, GitHub, + GitLab, IDE. + +- **Безпека:** SHA-1 хешування гарантує цілісність історії. + +Git ідеально підходить для сучасних командних workflow та open-source проєктів +завдяки швидкості, гнучкості та надійності. + +
+ +
+3. У чому відмінність між Git і GitHub? + +#### GIT + +- **Git** — система контролю версій (VCS) для відстеження змін у коді локально + або на будь-якому сервері. + +- **GitHub** — онлайн-сервіс для зберігання Git-репозиторіїв з веб-інтерфейсом, + спільною роботою та додатковими функціями: pull requests, issues, CI/CD + інтеграції. + +- Коротко: Git — інструмент для роботи з версіями коду, GitHub — платформа для + хостингу та командної роботи з Git. + +Можна використовувати Git без GitHub (локально) або GitHub безпосередньо для +колаборації через веб. + +
+ +
+4. Що таке репозиторій у Git і яка його роль? + +#### GIT + +- **Репозиторій (repository, repo)** — це місце зберігання всього коду проєкту + та історії змін. + +- Містить: + + - Файли проєкту (код, документацію, конфігурації). + + - Історію комітів (зміни з авторами та повідомленнями). + + - Гілки (branches) для паралельної розробки. + +- Може бути локальний (на вашому комп’ютері) або віддалений (GitHub, GitLab, + Bitbucket). + +Репозиторій дозволяє відстежувати зміни, працювати командою та повертатися до +попередніх версій коду. + +
+ +
+5. Що таке коміт (commit) у Git і для чого він використовується? + +#### GIT + +- **Коміт (commit)** — це збереження знімка змін у репозиторії разом із + повідомленням. + +- Містить: + + - Історію змін файлів (added, modified, deleted). + + - Авторство та дату зміни. + + - Унікальний SHA-1 хеш для ідентифікації. + +- Використовується для: + + - Відстеження прогресу проєкту. + + - Повернення до попередніх станів (git checkout, git revert). + + - Координації роботи в команді через pull/merge. + +#### Приклад коміту: + +```bash +git add index.html + +git commit -m "feat(html): Додаю базову структуру сторінки" +``` + +Коміти формують історію проєкту, яку можна аналізувати, відновлювати і +об’єднувати. + +
+ +
+6. Яка різниця між робочим каталогом (working directory), стейджингом (staging area/index) і репозиторієм (repository) у Git? + +#### GIT + +1. **Робочий каталог (Working Directory)** + +- Це ваші файли на диску, які ви редагуєте. + +- Містить останню версію коду з Git + незбережені зміни. + +2. **Проміжна область (Staging Area / Index)** + +- Тимчасове місце для підготовки змін до коміту. + +- Ви обираєте, які файли/зміни будуть включені у наступний коміт. + +- Команди: git add `` додає зміни до стейджу. + +3. **Локальний репозиторій (Repository)** + +- Збережена історія комітів у .git папці. + +- Містить всі коміти, гілки, теги, SHA-1 хеші. + +- Команди: git commit переносить зміни зі стейджу у репозиторій. + +#### Схематично: + +```rust +Working Directory -> git add -> Staging Area -> git commit -> Repository +``` + +Ця модель дозволяє гнучко контролювати, які зміни зберігати, і робити чисту +історію комітів. + +
+ +
+7. Що таке розгалуження (branching) у Git і чому воно важливе? + +#### GIT + +- **Розгалуження (branch)** — це окрема лінія розробки в репозиторії, яка + дозволяє працювати над новими функціями, виправленнями або експериментами, не + зачіпаючи основну гілку (main/master). + +- Важливість: + + - Паралельна робота кількох розробників. + + - Безпечне тестування нових фіч. + + - Легка інтеграція через merge або rebase. + + - Чистіша історія комітів і контроль над змінами. + +#### Приклад створення і перемикання гілки: + +```bash +git branch feature-login + +git checkout feature-login +``` + +Branching — основа сучасних workflow (Git Flow, GitHub Flow) для командної +розробки. + +
+ +
+8. Що таке HEAD у Git і яка його роль? + +#### GIT + +- **HEAD** — це поточний вказівник на коміт, з яким ви зараз працюєте. + +- Зазвичай HEAD показує на гілку, а гілка — на останній коміт. + +- Використовується для: + + - Відстеження, де ви зараз перебуваєте в історії комітів. + + - Перемикання гілок (git checkout ``) або комітів (git checkout + ``). + +- Можливі стани HEAD: + + - **Normal** — вказує на гілку. + + - **Detached HEAD** — тимчасово вказує на конкретний коміт, не на гілку. + +#### Приклад: + +```bash +git checkout feature-login + +# HEAD тепер вказує на гілку feature-login +``` + +HEAD — ключовий концепт для навігації по історії Git і управління комітами. + +
+ +
+9. Що таке операція clone у Git і для чого вона використовується? + +#### GIT + +- `git clone` — створює повну копію віддаленого репозиторію на вашому локальному + комп’ютері. + +- **_Копія містить:_** + + - Усі файли проєкту. + + - Історію комітів. + + - Всі гілки та теги. + +- **_Використовується для:_** + + - Початку роботи над існуючим проєктом. + + - Спільної роботи команди через GitHub, GitLab або інші сервери. + +#### Приклад: + +```bash +git clone https://github.com/user/repo.git +``` + +Результат: локальний репозиторій, готовий для комітів, гілок і синхронізації з +віддаленим сервером. + +
+ +
+10. Як Git зберігає дані про проєкт і його історію змін? + +#### GIT + +- Git зберігає снімки (snapshots), а не просто дельти файлів. + +- **Кожен коміт — це SHA-1 хеш з:** + + - Посиланням на попередній коміт. + + - Змінами файлів (знімком дерева). + + - Автором і повідомленням коміту. + +- **Структура зберігання:** + + - `Blob` — вміст файлів. + + - `Tree` — каталог файлів та папок. + + - `Commit` — вказує на tree і попередній коміт. + +- Папка `.git` містить всі об’єкти і метадані, що дозволяє повністю відтворити + історію проєкту. + +👉 Така модель робить Git швидким, надійним і дозволяє ефективно працювати з +гілками та злиттями. + +
+ +
+11. ??? #### GIT @@ -38,6 +313,8 @@ Git дозволяє безпечно керувати кодом, відсте
+--- + # GIT GIT logo Вітаю! ✨ Цей репозиторій містить вичерпний конспект, який я створила під час