@@ -305,7 +305,281 @@ git clone https://github.com/user/repo.git
305305</details >
306306
307307<details >
308- <summary >11. ???</summary >
308+ <summary >11. Як ініціалізувати новий репозиторій Git?</summary >
309+
310+ #### GIT
311+
312+ - Використати команду:
313+
314+ ``` bash
315+ git init
316+ ```
317+
318+ - Вона створює приховану папку .git у поточному каталозі, де зберігатиметься
319+ історія комітів, гілки та конфігурація.
320+
321+ - Далі треба додати файли й зробити перший коміт:
322+
323+ ``` bash
324+ git add .
325+
326+ git commit -m " Initial commit"
327+ ```
328+
329+ Після git init каталог стає повноцінним Git-репозиторієм.
330+
331+ </details >
332+
333+ <details >
334+ <summary >12. Для чого використовується команда git status?</summary >
335+
336+ #### GIT
337+
338+ - Показує поточний стан робочого каталогу та індексу (staging area).
339+
340+ - Інформує про:
341+
342+ - Які файли змінені, але ще не додані.
343+
344+ - Які файли вже в індексі та підуть у наступний коміт.
345+
346+ - Які файли не відслідковуються.
347+
348+ - Поточну гілку та її відставання/випередження відносно remote.
349+
350+ #### Приклад:
351+
352+ ``` bash
353+ git status
354+ ```
355+
356+ Дає зрозуміти, що саме буде закомічено, а що ще потребує git add.
357+
358+ </details >
359+
360+ <details >
361+ <summary >13. Яке призначення команди git add?</summary >
362+
363+ #### GIT
364+
365+ - ` git add ` додає зміни з робочого каталогу у staging area (індекс).
366+
367+ - Це підготовчий етап перед комітом.
368+
369+ - Можна додавати окремі файли або всі зміни.
370+
371+ #### Приклади:
372+
373+ ``` bash
374+ git add file.txt # додає конкретний файл
375+ git add . # додає всі зміни в поточному каталозі
376+ git add -p # додає зміни частинами (interactive)
377+ ```
378+
379+ Сам ` git add ` ще не зберігає зміни в історії — тільки позначає їх для наступного
380+ ` git commit ` .
381+
382+ </details >
383+
384+ <details >
385+ <summary >14. Яким чином створюється новий коміт у Git?</summary >
386+
387+ #### GIT
388+
389+ 1 . Спочатку додати зміни у staging area:
390+
391+ ``` bash
392+ git add .
393+ ```
394+
395+ 2 . Потім створити коміт:
396+
397+ ``` bash
398+ git commit -m " Опис змін"
399+ ```
400+
401+ - Ключ -m додає повідомлення коміту.
402+
403+ - Якщо його не вказати — відкриється редактор для введення повідомлення.
404+
405+ - Коміт зберігає знімок (snapshot) поточного стану індексу в історії
406+ репозиторію.
407+
408+ Рекомендується писати короткі й зрозумілі повідомлення, щоб легко відстежувати
409+ зміни.
410+
411+ </details >
412+
413+ <details >
414+ <summary >15. Які дані зберігає об’єкт коміту в Git?</summary >
415+
416+ #### GIT
417+
418+ - Об’єкт коміту містить:
419+
420+ - Хеш (SHA-1/SHA-256) — унікальний ідентифікатор.
421+
422+ - Посилання на tree-об’єкт (структура файлів і папок на момент коміту).
423+
424+ - Посилання на parent-коміти (зв’язок в історії, може бути кілька у merge).
425+
426+ - Автор (ім’я, email, час створення).
427+
428+ - Комітер (той, хто зафіксував, може відрізнятися від автора).
429+
430+ - Commit message (опис змін).
431+
432+ Таким чином Git зберігає не файли, а знімки стану + метадані, що дозволяє легко
433+ відновлювати і порівнювати історію.
434+
435+ </details >
436+
437+ <details >
438+ <summary >16. Яка різниця між командами git push і git fetch?</summary >
439+
440+ #### GIT
441+
442+ - ` git push ` — відправляє локальні коміти у віддалений репозиторій (оновлює
443+ remote-branch).
444+
445+ - ` git fetch ` — отримує нові дані з віддаленого репозиторію, але не зливає їх у
446+ локальну гілку (оновлює тільки refs/remotes).
447+
448+ #### Тобто:
449+
450+ - ` push ` = викласти свої зміни.
451+
452+ - ` fetch ` = завантажити чужі зміни для перегляду/злиття.
453+
454+ </details >
455+
456+ <details >
457+ <summary >17. Яке призначення команди git pull?</summary >
458+
459+ #### GIT
460+
461+ - ` git pull ` = ` git fetch ` + ` git merge ` (або ` rebase ` , якщо вказано опцію).
462+
463+ - Вона завантажує останні зміни з віддаленого репозиторію і одразу інтегрує їх у
464+ поточну гілку.
465+
466+ - Використовується для синхронізації локальної гілки з remote.
467+
468+ #### Приклад:
469+
470+ ``` bash
471+ git pull origin main
472+ ```
473+
474+ - Отримає оновлення з origin/main і зіллє їх у вашу локальну main.
475+
476+ Якщо потрібен лише перегляд змін без злиття — краще використовувати git fetch.
477+
478+ </details >
479+
480+ <details >
481+ <summary >18. Яке призначення та варіанти використання команди git branch?</summary >
482+
483+ #### GIT
484+
485+ - ` git branch ` керує гілками в репозиторії. Основні сценарії:
486+
487+ 1 . Перегляд усіх гілок:
488+
489+ ``` bash
490+ git branch
491+ ```
492+
493+ 2 . Створення нової гілки:
494+
495+ ``` bash
496+ git branch feature/login
497+ ```
498+
499+ 3 . Видалення гілки (локально):
500+
501+ ``` bash
502+ git branch -d feature/login # безпечне (якщо змерджено) git branch -D
503+ feature/login # примусове
504+ ```
505+
506+ 4 . Перейменування гілки:
507+
508+ ``` bash
509+ git branch -m old-name new-name
510+ ```
511+
512+ 5 . Перегляд віддалених гілок:
513+
514+ ``` bash
515+ git branch -r
516+ ```
517+
518+ Важливо: ` git branch ` не перемикає гілки, а тільки створює/керує. Для
519+ перемикання використовується ` git checkout ` або ` git switch ` .
520+
521+ </details >
522+
523+ <details >
524+ <summary >19. Як використовувати git checkout для перемикання між гілками?</summary >
525+
526+ #### GIT
527+
528+ - Команда ` git checkout <branch> ` змінює поточну гілку на вказану, оновлюючи
529+ робочий каталог до стану цієї гілки.
530+
531+ #### Приклад:
532+
533+ ``` bash
534+ git checkout feature/login
535+ ```
536+
537+ - Тепер HEAD вказує на feature/login, і всі файли відображають її стан.
538+
539+ ** Створення нової гілки та одночасне перемикання:**
540+
541+ ``` bash
542+ git checkout -b feature/signup
543+ ```
544+
545+ - Перевага: швидко працювати з різними гілками без втрати змін (якщо вони
546+ закомічені або у стейджі).
547+
548+ В сучасних workflow рекомендують ` git switch ` для перемикання гілок
549+ (` git switch feature/login ` ) — більш інтуїтивно.
550+
551+ </details >
552+
553+ <details >
554+ <summary >20. Для чого використовується команда git merge?</summary >
555+
556+ #### GIT
557+
558+ - ` git merge <branch> ` об’єднує зміни з іншої гілки у поточну.
559+
560+ - Застосовується для інтеграції роботи над фічами або виправленнями в основну
561+ гілку (main/develop).
562+
563+ #### Типи злиття:
564+
565+ - ` Fast-forward ` — просто переміщує вказівник гілки, якщо історія лінійна.
566+
567+ - ` Three-way merge ` — створює новий коміт злиття, якщо гілки розходяться.
568+
569+ #### Приклад:
570+
571+ ``` bash
572+ git checkout main git merge feature/login
573+ ```
574+
575+ - Після цього всі зміни з feature/login будуть в main.
576+
577+ Merge дозволяє безпечно інтегрувати паралельні гілки без втрати історії.
578+
579+ </details >
580+
581+ <details >
582+ <summary >21. ???</summary >
309583
310584#### GIT
311585
0 commit comments