From 399e3b1cfdfafd1d4050ae9ae62d845a858124a4 Mon Sep 17 00:00:00 2001 From: ViktorSvertoka Date: Wed, 11 Jun 2025 14:33:12 +0300 Subject: [PATCH] Docs(MD): Added interview questions and answers --- README.md | 159 +++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 121 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index b5fcdd4..7a20aae 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,70 @@ +

+ GIT HTML logo +

+ +

Найпопулярніші запитання та відповіді на співбесіді з GIT

+ +
+1. Що таке Git і яка його роль у розробці програмного забезпечення? + +#### GIT + +- **Git** — розподілена система контролю версій (VCS) для відстеження змін у + коді. + +#### Використання: + +- Зберігання історії змін у проєкті. + +- Паралельна розробка в гілках (branches). + +- Об’єднання змін через merge або rebase. + +- Відновлення попередніх версій файлів. + +- Спільна робота команд над кодом через сервіси (GitHub, GitLab, Bitbucket). + +Git дозволяє безпечно керувати кодом, відстежувати зміни та ефективно +співпрацювати. + +
+ +
+2. ??? + +#### GIT + +- Coming Soon... 😎 + +
+ # GIT GIT logo -Вітаю! ✨ -Цей репозиторій містить вичерпний конспект, який я створила під час проходження курсу Нікіти Тимошенка про [Git та GitHub](https://www.youtube.com/watch?v=9CnZihyYjjA&list=WL&index=2&t=1s) +Вітаю! ✨ Цей репозиторій містить вичерпний конспект, який я створила під час +проходження курсу Нікіти Тимошенка про +[Git та GitHub](https://www.youtube.com/watch?v=9CnZihyYjjA&list=WL&index=2&t=1s) -📌 Конспект у форматі питання-відповіді, щоб ви могли перевірити себе та швидко знаходити потрібну інформацію. +📌 Конспект у форматі питання-відповіді, щоб ви могли перевірити себе та швидко +знаходити потрібну інформацію. -📌 Структура наближена до курсу, тож вам буде легко орієнтуватися в темах і знаходити потрібний матеріал. +📌 Структура наближена до курсу, тож вам буде легко орієнтуватися в темах і +знаходити потрібний матеріал. -📌 Раджу пройти сам [курс](https://www.youtube.com/watch?v=9CnZihyYjjA&list=WL&index=2&t=1s) та прочитати [конспект від Нікіти](https://github.com/NickTimosh/git_course/tree/main/notebooks) адже там багато корисного: +📌 Раджу пройти сам +[курс](https://www.youtube.com/watch?v=9CnZihyYjjA&list=WL&index=2&t=1s) та +прочитати +[конспект від Нікіти](https://github.com/NickTimosh/git_course/tree/main/notebooks) +адже там багато корисного: - детальний опис команд, - практичні завдання, - корисні посилання. -✨ А цей конспект допоможе вам перевірити, наскільки добре ви засвоїли отримані знання! 🚀 +✨ А цей конспект допоможе вам перевірити, наскільки добре ви засвоїли отримані +знання! 🚀 -Якщо є якісь зауваження, або пропозиції для покращення не соромтесь створювати issues або pull requests. Я відкрита до зворотного зв'язку 🙌 +Якщо є якісь зауваження, або пропозиції для покращення не соромтесь створювати +issues або pull requests. Я відкрита до зворотного зв'язку 🙌 Легкого навчання!😊 @@ -78,7 +127,8 @@ Що таке GUI? - графічний інтерфейс користувача (Graphical User Interface) - - спосіб взаємодії користувача з комп'ютером із використанням графічних елементів (вікна, кнопки і тд) + - спосіб взаємодії користувача з комп'ютером із використанням графічних + елементів (вікна, кнопки і тд) @@ -95,7 +145,8 @@
Що таке термінал? -- програма або інструмент, який надає доступ до командного рядка (вікно, куди команди вводяться) +- програма або інструмент, який надає доступ до командного рядка (вікно, куди + команди вводяться)
@@ -641,7 +692,8 @@ - команда — **cd** - відображення шляху: - - перетягти папку у вікно git bash (і шлях відобразиться, треба тільки cd на початку дописати) + - перетягти папку у вікно git bash (і шлях відобразиться, треба тільки cd на + початку дописати) - написати повністю шлях самостійно @@ -928,13 +980,15 @@
Які прапорці має ця команда і чим вони відрізняються? -- --hard — перезапише повністю до поточної версії, до якої ми звернемося (через id) і повністю видаляє всі зміни +- --hard — перезапише повністю до поточної версії, до якої ми звернемося (через + id) і повністю видаляє всі зміни - --soft — дозволяє зберегти внесені зміни (у staging) - --mixed — **використовується за замовчуванням** - - всі зміни, які були додані до staging area, будуть прибрані назад у робочу директорію + - всі зміни, які були додані до staging area, будуть прибрані назад у робочу + директорію - тобто файли, які були в staging, знову стають "modified", але не видаляються - повні команди: @@ -979,7 +1033,8 @@
Що означає "detached HEAD"? -- коли `HEAD` не вказує на останній коміт гілки, а вказує на конкретний коміт або тег +- коли `HEAD` не вказує на останній коміт гілки, а вказує на конкретний коміт + або тег
@@ -994,15 +1049,19 @@
Що дає detached HEAD? -- У стані detached HEAD можна переглядати або тестувати код на певному коміті, але будь-які нові коміти, які будуть зроблені, не будуть пов'язані з жодною гілкою -- для збереження коміту, що був зроблений у цьому стані, потрібно створити нову гілку, щоб не втратити зміни +- У стані detached HEAD можна переглядати або тестувати код на певному коміті, + але будь-які нові коміти, які будуть зроблені, не будуть пов'язані з жодною + гілкою +- для збереження коміту, що був зроблений у цьому стані, потрібно створити нову + гілку, щоб не втратити зміни
Як вийти зі стану "detached HEAD"? -- використати команду `git checkout `, де `` — це назва гілки, на якій ви хотіли б продовжити працювати +- використати команду `git checkout `, де `` — це + назва гілки, на якій ви хотіли б продовжити працювати
@@ -1018,7 +1077,8 @@
Що таке конфлікти в git? -- ситуація, коли на одних і тих самих рядках, в одних і тим самих файлах вказані різні дані +- ситуація, коли на одних і тих самих рядках, в одних і тим самих файлах вказані + різні дані
@@ -1055,7 +1115,8 @@
Які складнощі пов'язані з цим способом? -- перезапис id деяких комітів, що може викликати певні складнощі, якщо виникне потреба відновити якісь попереднії версії +- перезапис id деяких комітів, що може викликати певні складнощі, якщо виникне + потреба відновити якісь попереднії версії
@@ -1119,7 +1180,8 @@ - git switch: - більш проста у розуміння і використанні - - використовується спеціально для перемикання (та/або для створення і перемикання) між гілками + - використовується спеціально для перемикання (та/або для створення і + перемикання) між гілками - git checkout: - більш універсальна - використовується для: @@ -1147,7 +1209,8 @@
Назву якої гілки ми маємо писати у команді об'єднання? -- назву гілки, **яку об'єднуємо** з цільовою гілкою (тобто назву альтернативної, додаткової гілки) +- назву гілки, **яку об'єднуємо** з цільовою гілкою (тобто назву альтернативної, + додаткової гілки)
@@ -1169,8 +1232,10 @@
Яка різниця між цими двома прапорцями? -- **-d** (soft delete) — не дозволить видалити гілку, яка ще не була передана до main (яка ще не інтегрована) -- **-D** (hard delete) — видалить гілку незалежно від того, чи вона вже інтегрована у main чи ще ні (безумовне видалення гілки) +- **-d** (soft delete) — не дозволить видалити гілку, яка ще не була передана до + main (яка ще не інтегрована) +- **-D** (hard delete) — видалить гілку незалежно від того, чи вона вже + інтегрована у main чи ще ні (безумовне видалення гілки)
@@ -1213,7 +1278,8 @@ Що передбачає концепція такого ключа? - спосіб безпечного підключення по GitHub без введення пароля - - SSH-ключ складається з публічного та приватного ключа. Публічний ключ додається до GitHub, а приватний зберігається локально + - SSH-ключ складається з публічного та приватного ключа. Публічний ключ + додається до GitHub, а приватний зберігається локально
@@ -1271,7 +1337,8 @@
Що передбачає ця концепція? -- копіювання репозиторію в акаунт користувача, що дозволяє експериментувати з кодом, не змінюючи оригінал +- копіювання репозиторію в акаунт користувача, що дозволяє експериментувати з + кодом, не змінюючи оригінал
@@ -1280,7 +1347,8 @@
Що це за файл? -- файл документації, що зазвичай містить опис проєкту, інструкції з використання та іншу корисну інформацію +- файл документації, що зазвичай містить опис проєкту, інструкції з використання + та іншу корисну інформацію
@@ -1297,7 +1365,8 @@
Що передбачає ця концепція? -- систему відстеження помилок, запитів на нові функції та обговорень у репозиторії +- систему відстеження помилок, запитів на нові функції та обговорень у + репозиторії
@@ -1323,7 +1392,8 @@
Що таке ліцензія? -- документ, у якому прописано, що можна, а що заборонено робити з репозиторієм (чи можна завантажувати код, перевикористовувати його у власних проєктах і тд) +- документ, у якому прописано, що можна, а що заборонено робити з репозиторієм + (чи можна завантажувати код, перевикористовувати його у власних проєктах і тд) - опис можливостей взаємодії з репозиторієм
@@ -1331,7 +1401,9 @@
Про що говорить ліцензія MIT? -- про те, що код і файли з репозиторію можна використовувати як завгодно без обмежень, але **обов'язково потрібно вказати авторство власника репозиторію, з якого беруться дані** +- про те, що код і файли з репозиторію можна використовувати як завгодно без + обмежень, але **обов'язково потрібно вказати авторство власника репозиторію, з + якого беруться дані**
@@ -1350,7 +1422,9 @@
Що таке .gitignore? -- файл, який використовується для того, щоб ігнорувати певні файли та папки в git. Файли і теки, додані в .gitignore не будуть додватись у коміти та потрапляти у репозиторій +- файл, який використовується для того, щоб ігнорувати певні файли та папки в + git. Файли і теки, додані в .gitignore не будуть додватись у коміти та + потрапляти у репозиторій
@@ -1474,7 +1548,8 @@ - натиснути на кнопку "New issue" - ввести title — лаконічно пояснити, яка проблема виникла -- написати description (за потреби додати якісь додаткові матеріали) — запропонувати кілька рішень +- написати description (за потреби додати якісь додаткові матеріали) — + запропонувати кілька рішень - натиснути кнопку "create" @@ -1498,7 +1573,8 @@ 2. **sync** — синхронізація того, що є на комп'ютері і того, що є на github 1. **push** local to remote repo або 2. **clone** remote to local repo -3. **pull** — завантажити собі останню актуальну версію проєкту (оновлення локального репо) +3. **pull** — завантажити собі останню актуальну версію проєкту (оновлення + локального репо) 4. **branch** — створюємо нову гілку 5. **commit** — передаємо зміни з гілки до локального репо 6. **push** — відправляємо всю гілку зі змінами до віддаленого репо @@ -1516,7 +1592,8 @@
Що таке ssh-ключ? -- файл, який має зберігати приватний ключ на комп'ютері та одночасно публічний ключ на github +- файл, який має зберігати приватний ключ на комп'ютері та одночасно публічний + ключ на github
@@ -1580,7 +1657,8 @@ Звідки можна взяти посилання на repo? - з github - - при створення порожнього репозиторію це вікно відкривається по дефолту з детальним описом, як віддалений репозиторій підв'язати до локального + - при створення порожнього репозиторію це вікно відкривається по дефолту з + детальним описом, як віддалений репозиторій підв'язати до локального @@ -1595,8 +1673,10 @@
За що відповідає upstream? -- повідомляє github з якої гілки брати зміни та/або в яку гілку зміни завантажувати - - Upstream гілка — це віддалена гілка, до якої підключено локальну гілку для відправки та отримання змін +- повідомляє github з якої гілки брати зміни та/або в яку гілку зміни + завантажувати + - Upstream гілка — це віддалена гілка, до якої підключено локальну гілку для + відправки та отримання змін
@@ -1615,7 +1695,8 @@ Яка команда дозволяє відправити на віддалений репозиторій гілку, яка була створено локально? - git push --set -upstream origin `branch_name` - - зазвичай git одразу пропонує цю команду за замовчування після команди push, тому залишається тільки скопіювати її і вставити в термінал + - зазвичай git одразу пропонує цю команду за замовчування після команди push, + тому залишається тільки скопіювати її і вставити в термінал @@ -1623,7 +1704,8 @@ Що робить --set upstream? - встановлює гілку на віддаленому репозиторії origin - - --set-upstream встановлює зв'язок між локальною і віддаленою гілкою для автоматичної синхронізації + - --set-upstream встановлює зв'язок між локальною і віддаленою гілкою для + автоматичної синхронізації @@ -1649,7 +1731,8 @@ Яка різниця між використання https та ssh посилання? - https вимагає явної авторизації -- з ssh ключем проводиться неявна авторизація (немає потреби кожен раз вводити логін і пароль для підтвердження) +- з ssh ключем проводиться неявна авторизація (немає потреби кожен раз вводити + логін і пароль для підтвердження)