diff --git a/README.md b/README.md index 87a6f4e..f537863 100644 --- a/README.md +++ b/README.md @@ -305,7 +305,281 @@ git clone https://github.com/user/repo.git
-11. ??? +11. Як ініціалізувати новий репозиторій Git? + +#### GIT + +- Використати команду: + +```bash +git init +``` + +- Вона створює приховану папку .git у поточному каталозі, де зберігатиметься + історія комітів, гілки та конфігурація. + +- Далі треба додати файли й зробити перший коміт: + +```bash +git add . + +git commit -m "Initial commit" +``` + +Після git init каталог стає повноцінним Git-репозиторієм. + +
+ +
+12. Для чого використовується команда git status? + +#### GIT + +- Показує поточний стан робочого каталогу та індексу (staging area). + +- Інформує про: + + - Які файли змінені, але ще не додані. + + - Які файли вже в індексі та підуть у наступний коміт. + + - Які файли не відслідковуються. + + - Поточну гілку та її відставання/випередження відносно remote. + +#### Приклад: + +```bash +git status +``` + +Дає зрозуміти, що саме буде закомічено, а що ще потребує git add. + +
+ +
+13. Яке призначення команди git add? + +#### GIT + +- `git add` додає зміни з робочого каталогу у staging area (індекс). + +- Це підготовчий етап перед комітом. + +- Можна додавати окремі файли або всі зміни. + +#### Приклади: + +```bash +git add file.txt # додає конкретний файл +git add . # додає всі зміни в поточному каталозі +git add -p # додає зміни частинами (interactive) +``` + +Сам `git add` ще не зберігає зміни в історії — тільки позначає їх для наступного +`git commit`. + +
+ +
+14. Яким чином створюється новий коміт у Git? + +#### GIT + +1. Спочатку додати зміни у staging area: + +```bash +git add . +``` + +2. Потім створити коміт: + +```bash +git commit -m "Опис змін" +``` + +- Ключ -m додає повідомлення коміту. + +- Якщо його не вказати — відкриється редактор для введення повідомлення. + +- Коміт зберігає знімок (snapshot) поточного стану індексу в історії + репозиторію. + +Рекомендується писати короткі й зрозумілі повідомлення, щоб легко відстежувати +зміни. + +
+ +
+15. Які дані зберігає об’єкт коміту в Git? + +#### GIT + +- Об’єкт коміту містить: + + - Хеш (SHA-1/SHA-256) — унікальний ідентифікатор. + + - Посилання на tree-об’єкт (структура файлів і папок на момент коміту). + + - Посилання на parent-коміти (зв’язок в історії, може бути кілька у merge). + + - Автор (ім’я, email, час створення). + + - Комітер (той, хто зафіксував, може відрізнятися від автора). + + - Commit message (опис змін). + +Таким чином Git зберігає не файли, а знімки стану + метадані, що дозволяє легко +відновлювати і порівнювати історію. + +
+ +
+16. Яка різниця між командами git push і git fetch? + +#### GIT + +- `git push` — відправляє локальні коміти у віддалений репозиторій (оновлює + remote-branch). + +- `git fetch` — отримує нові дані з віддаленого репозиторію, але не зливає їх у + локальну гілку (оновлює тільки refs/remotes). + +#### Тобто: + +- `push` = викласти свої зміни. + +- `fetch` = завантажити чужі зміни для перегляду/злиття. + +
+ +
+17. Яке призначення команди git pull? + +#### GIT + +- `git pull` = `git fetch` + `git merge` (або `rebase`, якщо вказано опцію). + +- Вона завантажує останні зміни з віддаленого репозиторію і одразу інтегрує їх у + поточну гілку. + +- Використовується для синхронізації локальної гілки з remote. + +#### Приклад: + +```bash +git pull origin main +``` + +- Отримає оновлення з origin/main і зіллє їх у вашу локальну main. + +Якщо потрібен лише перегляд змін без злиття — краще використовувати git fetch. + +
+ +
+18. Яке призначення та варіанти використання команди git branch? + +#### GIT + +- `git branch` керує гілками в репозиторії. Основні сценарії: + +1. Перегляд усіх гілок: + +```bash +git branch +``` + +2. Створення нової гілки: + +```bash +git branch feature/login +``` + +3. Видалення гілки (локально): + +```bash +git branch -d feature/login # безпечне (якщо змерджено) git branch -D +feature/login # примусове +``` + +4. Перейменування гілки: + +```bash +git branch -m old-name new-name +``` + +5. Перегляд віддалених гілок: + +```bash +git branch -r +``` + +Важливо: `git branch` не перемикає гілки, а тільки створює/керує. Для +перемикання використовується `git checkout` або `git switch`. + +
+ +
+19. Як використовувати git checkout для перемикання між гілками? + +#### GIT + +- Команда `git checkout ` змінює поточну гілку на вказану, оновлюючи + робочий каталог до стану цієї гілки. + +#### Приклад: + +```bash +git checkout feature/login +``` + +- Тепер HEAD вказує на feature/login, і всі файли відображають її стан. + +**Створення нової гілки та одночасне перемикання:** + +```bash +git checkout -b feature/signup +``` + +- Перевага: швидко працювати з різними гілками без втрати змін (якщо вони + закомічені або у стейджі). + +В сучасних workflow рекомендують `git switch` для перемикання гілок +(`git switch feature/login`) — більш інтуїтивно. + +
+ +
+20. Для чого використовується команда git merge? + +#### GIT + +- `git merge ` об’єднує зміни з іншої гілки у поточну. + +- Застосовується для інтеграції роботи над фічами або виправленнями в основну + гілку (main/develop). + +#### Типи злиття: + +- `Fast-forward` — просто переміщує вказівник гілки, якщо історія лінійна. + +- `Three-way merge` — створює новий коміт злиття, якщо гілки розходяться. + +#### Приклад: + +```bash +git checkout main git merge feature/login +``` + +- Після цього всі зміни з feature/login будуть в main. + +Merge дозволяє безпечно інтегрувати паралельні гілки без втрати історії. + +
+ +
+21. ??? #### GIT