{"id":26674109,"url":"https://github.com/frontendlovers/git-for-beginners","last_synced_at":"2025-03-26T02:17:29.347Z","repository":{"id":284367900,"uuid":"954230384","full_name":"FrontendLovers/git-for-beginners","owner":"FrontendLovers","description":"Вичерпний конспект для самоперевірки по курсу Нікіти Тимошенка \"ПОВНИЙ КУРС по GIT та GITHUB українською\"","archived":false,"fork":false,"pushed_at":"2025-03-25T14:02:23.000Z","size":1527,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-25T15:23:17.170Z","etag":null,"topics":["command-line","git","git-bash","github","shell"],"latest_commit_sha":null,"homepage":"https://www.youtube.com/watch?v=9CnZihyYjjA\u0026list=WL\u0026index=2\u0026t=1s","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FrontendLovers.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-24T18:59:09.000Z","updated_at":"2025-03-25T14:02:27.000Z","dependencies_parsed_at":"2025-03-25T15:23:20.683Z","dependency_job_id":null,"html_url":"https://github.com/FrontendLovers/git-for-beginners","commit_stats":null,"previous_names":["frontendlovers/git-for-beginners"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FrontendLovers%2Fgit-for-beginners","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FrontendLovers%2Fgit-for-beginners/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FrontendLovers%2Fgit-for-beginners/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FrontendLovers%2Fgit-for-beginners/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FrontendLovers","download_url":"https://codeload.github.com/FrontendLovers/git-for-beginners/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245573892,"owners_count":20637674,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["command-line","git","git-bash","github","shell"],"created_at":"2025-03-26T02:17:28.585Z","updated_at":"2025-03-26T02:17:29.337Z","avatar_url":"https://github.com/FrontendLovers.png","language":null,"readme":"# GIT \u003cimg src=\"./assets/git-icon-logo-svgrepo-com.svg\" width=\"40\" height=\"40\" alt=\"GIT logo\"/\u003e\n\nВітаю! ✨\nЦей репозиторій містить вичерпний конспект, який я створила під час проходження курсу Нікіти Тимошенка про [Git та GitHub](https://www.youtube.com/watch?v=9CnZihyYjjA\u0026list=WL\u0026index=2\u0026t=1s)\n\n📌 Конспект у форматі питання-відповіді, щоб ви могли перевірити себе та швидко знаходити потрібну інформацію.\n\n📌 Структура наближена до курсу, тож вам буде легко орієнтуватися в темах і знаходити потрібний матеріал.\n\n📌 Раджу пройти сам [курс](https://www.youtube.com/watch?v=9CnZihyYjjA\u0026list=WL\u0026index=2\u0026t=1s) та прочитати [конспект від Нікіти](https://github.com/NickTimosh/git_course/tree/main/notebooks) адже там багато корисного:\n\n-   детальний опис команд,\n-   практичні завдання,\n-   корисні посилання.\n\n✨ А цей конспект допоможе вам перевірити, наскільки добре ви засвоїли отримані знання! 🚀\n\nЯкщо є якісь зауваження, або пропозиції для покращення не соромтесь створювати issues або pull requests. Я відкрита до зворотного зв'язку 🙌\n\nЛегкого навчання!😊\n\n---\n\n\u003ch2\u003eЗміст\u003c/h2\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eКомандний рядок\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#command-line-terms\"\u003eКомандний рядок — терміни\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#files-system-terms\"\u003eФайлова система — терміни\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#path-to-files\"\u003eШлях до файлів\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#read-folder-content\"\u003eЧитання вмісту папок(команди)\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#interaction-with-folders\"\u003eВзаємодія з папками(команди)\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#interaction-with-files\"\u003eВзаємодія з файлами(команди)\u003c/a\u003e\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eGit\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003ca href=\"#git-overview\"\u003eКороткий огляд\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#git-config\"\u003eОсновні налаштування\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#git-main-theory\"\u003eТеорія, основні концепції\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#git-main-commands\"\u003eОсновні команди\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#git-extensions-basics\"\u003eРозширення основ\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#git-recovery-version\"\u003eВступ до відновлення версій\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#git-branches\"\u003eВступ в git branch\u003c/a\u003e\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eGitHub\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003ca href=\"#github-overview\"\u003eКороткий огляд\u003c/a\u003e\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/details\u003e\n\n---\n\n\u003ch2\u003eКомадний рядок\u003c/h2\u003e\n\n[Конспект](https://github.com/NickTimosh/git_course/blob/main/notebooks/1.%20%D0%92%D1%81%D1%82%D1%83%D0%BF%20%D0%B2%20%D0%9A%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%B8%D0%B9%20%D0%A0%D1%8F%D0%B4%D0%BE%D0%BA.md)\n\n\u003ch3 id=\"command-line-terms\"\u003eКомандний рядок — терміни\u003c/h3\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо таке GUI?\u003c/summary\u003e\n\n-   графічний інтерфейс користувача (Graphical User Interface)\n    -   спосіб взаємодії користувача з комп'ютером із використанням графічних елементів (вікна, кнопки і тд)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо таке Сommand Line?\u003c/summary\u003e\n\n-   командний рядок\n    -   текстовий інтерфейс для взаємодії з операційною системою\n    -   простір, де вводяться текстові команди\n    -   і тут же можуть викликатися і запускатися певні програми\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо таке термінал?\u003c/summary\u003e\n\n-   програма або інструмент, який надає доступ до командного рядка (вікно, куди команди вводяться)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо таке Shell?\u003c/summary\u003e\n\n-   оболонка\n    -   програма, яка виконує команди, введені у терміналі (інтерпретатор команд)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eПринцип роботи Shell (схема)\u003c/summary\u003e\n\n\u003cimg src=\"./assets//images/working-principale-shell.png\" width=\"800\" alt=\"Schematic of the principle of shell operation\"/\u003e\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо таке Bash?\u003c/summary\u003e\n\n-   один із типів оболонок (Shell)\n-   Bourne Again Shell (Bash)\n-   підтримується у Windows через Git Bash\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eВзаємодія з ОС (схема)\u003c/summary\u003e\n\n\u003cimg src=\"./assets//images/interaction-with-OS.png\" width=\"800\" alt=\"Diagram of the stages of interaction with the operating system\"/\u003e\n\n\u003c/details\u003e\n\n---\n\n\u003ch3 id=\"files-system-terms\"\u003eФайлова система — терміни\u003c/h3\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо таке каталог (директорія)?\u003c/summary\u003e\n\n-   структура, яка використовується для організації файлів у файловій системі\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо таке поточний каталог?\u003c/summary\u003e\n\n-   папка, в якій користувач перебуває прямо зараз\n    -   команди по замовчуванню виконуються у поточному каталозі\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо таке батьківський каталог?\u003c/summary\u003e\n\n-   папка, що знаходиться на один рівень вища, за поточний\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо таке домашній каталог?\u003c/summary\u003e\n\n-   персональний каталог користувача\n    -   Диск С —\u003e Users —\u003e User name (або USER)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо таке кореневий каталог?\u003c/summary\u003e\n\n-   початкова точка файлової системи\n    -   найвищий рівень ієрархії каталогів\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eСтруктура каталогів (схема)\u003c/summary\u003e\n\n\u003cimg src=\"./assets//images/directions-structure.png\" width=\"800\" alt=\"Directory structure\"/\u003e\n\n\u003c/details\u003e\n\n---\n\n\u003ch3 id=\"path-to-files\"\u003eШлях до файлів\u003c/h3\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо таке шлях (path)?\u003c/summary\u003e\n\n-   адреси файлів у каталозі файлової системи\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯкі є два види шляхів до файлів?\u003c/summary\u003e\n\n-   абсолютний\n-   відносний\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eДе починається абсолютний шях?\u003c/summary\u003e\n\n-   з кореневого каталогу\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо визначає відносний шях?\u003c/summary\u003e\n\n-   розташування файлу по відношенню до поточного каталогу\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо таке розширення файлів?\u003c/summary\u003e\n\n-   частина назви файлу, що йде після крапки\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eДля чого потрібне розширення файлів?\u003c/summary\u003e\n\n-   для визначення типу файлу\n\n\u003c/details\u003e\n\n---\n\n\u003ch3 id=\"read-folder-content\"\u003eКомандний рядок — читання вмісту папок (команди)\u003c/h3\u003e\n\n[Конспект](https://github.com/NickTimosh/git_course/blob/main/notebooks/2.%20git%20bash%20-%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%B8.md)\n\n[Практичні завдання](https://github.com/NickTimosh/git_course/blob/main/notebooks/3.%20git%20bash%20-%20%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%BA%D0%B0.md)\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда відображає вміст всієї папки, у якій знаходиться користувач?\u003c/summary\u003e\n\n-   ls\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє відобразити вміст каталогу відмінного від поточного?\u003c/summary\u003e\n\n-   ls `path` (вказати шлях)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯкі типи шляхів це дозволяють?\u003c/summary\u003e\n\n-   обидва: відносний та абсолютний\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє повернути вмісти кореневого каталогу?\u003c/summary\u003e\n\n-   ls /\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє повернути вмісти батьківського каталогу?\u003c/summary\u003e\n\n-   ls ..\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда очищає вікно терміналу?\u003c/summary\u003e\n\n-   clear\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯк у Git Bash навігувати по командам, що вже були написані?\u003c/summary\u003e\n\n-   стрілочка вгору (до попередніх команд)\n-   стрілочка вниз (до наступних команд, що були після попередніх)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо таке прапорці команд?\u003c/summary\u003e\n\n-   додаткові опції команд\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯк впроваджуються прапорці команд?\u003c/summary\u003e\n\n-   через дефіси, які ми пишемо після команди\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯкий прапорець надає довідку?\u003c/summary\u003e\n\n-   `комадна` --help\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє повернути вміст всіх папок у довгому форматі (з прапорцем)?\u003c/summary\u003e\n\n-   ls -l\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯк вивести дані, які повертає команда у вигляді текстового файлу?\u003c/summary\u003e\n\n-   `your_command` \u003e file_name.extension\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє вивести вміст папок у вигляді текстового файлу?\u003c/summary\u003e\n\n-   ls \u003e `file_name.extension`\n    -   наприклад, ls \u003e output.txt\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє вивести вміст папок у вигляді текстового файлу у довгому форматі?\u003c/summary\u003e\n\n-   ls -l \u003e `file_name.extension`\n    -   наприклад, ls -l \u003e output.txt\n\n\u003c/details\u003e\n\n---\n\n\u003ch3 id=\"interaction-with-folders\"\u003eКомандний рядок — взаємодія з папками (команди)\u003c/h3\u003e\n\n[Конспект](https://github.com/NickTimosh/git_course/blob/main/notebooks/2.%20git%20bash%20-%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%B8.md)\n\n[Практичні завдання](https://github.com/NickTimosh/git_course/blob/main/notebooks/3.%20git%20bash%20-%20%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%BA%D0%B0.md)\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда показує поточну директорію?\u003c/summary\u003e\n\n-   pwd\n    -   prind working directory\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо повертає ця команда?\u003c/summary\u003e\n\n-   шлях до каталогу, у якому ми знаходимось\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє змінити поточну директорію на домашній каталог користувача?\u003c/summary\u003e\n\n-   cd\n    -   change directory\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯк змінити поточну директорію на якусь конкретну іншу?\u003c/summary\u003e\n\n-   cd `path` (вказати шлях)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда повертає до батьківської директорії?\u003c/summary\u003e\n\n-   cd ..\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда створює нову папку?\u003c/summary\u003e\n\n-   mkdir `directory_name`\n    -   make directory\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯк створити одразу кілька папок у поточній директорії?\u003c/summary\u003e\n\n-   mkdir `directory_name_1` `directory_name_2`\n-   якщо потрібні вкладені каталоги:\n    -   mkdir -p dir1/dir2/dir3\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє скопіювати директорію до певної папки?\u003c/summary\u003e\n\n-   cp -r `copy_directory to_directory`\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє видалити директорію?\u003c/summary\u003e\n\n-   rm -r `file_name` (рекурсивне видалення)\n-   якщо директорія містить файли:\n    -   rm -rf directory_name\n\n\u003c/details\u003e\n\n---\n\n\u003ch3 id=\"interaction-with-files\"\u003eКомандний рядок — взаємодія з файлами (команди)\u003c/h3\u003e\n\n[Конспект](https://github.com/NickTimosh/git_course/blob/main/notebooks/2.%20git%20bash%20-%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%B8.md)\n\n[Практичні завдання](https://github.com/NickTimosh/git_course/blob/main/notebooks/3.%20git%20bash%20-%20%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%BA%D0%B0.md)\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда створює файл?\u003c/summary\u003e\n\n-   touch `file_name.extension`\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯк команда дозволяє скопіювати файл і перенести його до іншої папки?\u003c/summary\u003e\n\n-   cp `copy_file destination_directory/`\n    -   copy\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє записати щось у файл?\u003c/summary\u003e\n\n-   echo `print_something` \u003e `in_file`\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє повернути вміст файлу?\u003c/summary\u003e\n\n-   cat `file_name`\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє видалити файл?\u003c/summary\u003e\n\n-   rm `file_name`\n\n\u003c/details\u003e\n\n---\n\n\u003ch2\u003eGit\u003c/h2\u003e\n\n\u003ch3 id=\"git-overview\"\u003eGit — короткий огляд\u003c/h3\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо таке Git?\u003c/summary\u003e\n\n-   програмне забезпечення\n-   система контролю версій (VCS — version control system)\n    -   відстежує зміни у файлах\n    -   дає змогу повернутися до попередніх версій\n    -   забезпечує зручну співпрацю команд\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо пропонує Git?\u003c/summary\u003e\n\n-   локальну базу даних\n-   синхронізацію з іншими серверами\n-   відновлення даних у разі збою\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯкі основні стани файлів у Git?\u003c/summary\u003e\n\n1. modified — файл змінено, але не додано до бази даних\n2. staged — файл підготовлено до збереження\n3. committed — зміни збережено у локальній базі даних\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eосновні стани файлів у Git (схема)\u003c/summary\u003e\n\n\u003cimg src=\"./assets//images/main-states-files.png\" width=\"800\" alt=\"Basic file states\"/\u003e\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо робить звичайну папку локальним репозиторієм?\u003c/summary\u003e\n\n-   папка .git\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда ініціалізує репозиторій?\u003c/summary\u003e\n\n-   git init\n    -   після цієї команди з'являється папка .git і наша папка стала репозиторієм\n\n\u003c/details\u003e\n\n---\n\n\u003ch3 id=\"git-config\"\u003eGit — налаштування\u003c/h3\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯк переконатися, що Git встановлено (яка команда)?\u003c/summary\u003e\n\n-   git --version\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє змінити налаштування (конфігурацію) Git?\u003c/summary\u003e\n\n-   git config\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯкий прапорець дозволяє встановити зміни конфігурації для всіх репозиторіїв (теперішніх і майбутніх)?\u003c/summary\u003e\n\n-   --global\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯк встановити ім'я користувача у конфігурації?\u003c/summary\u003e\n\n-   git config --global user.name `\"your_name\"`\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯк встановити пошту (email) користувача у конфігурації?\u003c/summary\u003e\n\n-   git config --global user.email `\"your_email\"`\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eНавіщо потрібно встановлювати ці налаштування?\u003c/summary\u003e\n\n-   щоб git міг відслідковувати, хто автор змін\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда перелік всіх налаштувань конфігурації?\u003c/summary\u003e\n\n-   git config --list\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє вивести всі папки, в тому числі приховані (трекінгові)?\u003c/summary\u003e\n\n-   ls -a\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє перевірити статус статуси файлів?\u003c/summary\u003e\n\n-   git status\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє отримати довідку?\u003c/summary\u003e\n\n-   git --help\n-   git `your_command` --help (довідка для конкретної команди)\n\n\u003c/details\u003e\n\n---\n\n\u003ch3 id=\"git-main-theory\"\u003eGit — теорія, основні концепції\u003c/h3\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯкі три основні концепції git?\u003c/summary\u003e\n\n-   коміти\n-   збереження усіх версій файлів\n-   гілки\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо таке коміт?\u003c/summary\u003e\n\n-   збереження файлу (його версії)\n-   інформація про те:\n    -   хто зберіг\n    -   коли зберіг\n    -   що саме було зроблено\n-   можливість повернутися до попередніх версій файлів\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯк зберігаються в комітах файли, в який не було жодних змін?\u003c/summary\u003e\n\n-   зберігається **посилання** на вихідний файл\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯкий порядок локального збереження версій файлів?\u003c/summary\u003e\n\n-   git add (staging area)\n-   git commit (committed area)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЛокальне збереження файлів (схема)\u003c/summary\u003e\n\n\u003cimg src=\"./assets//images/local-file-saving-scheme.png\" width=\"800\" alt=\"Local file storage scheme\"/\u003e\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯкі шляхи вказання шляху до потрібної директорії (команда і два варіанти відображення шляху)?\u003c/summary\u003e\n\n-   команда — **cd**\n-   відображення шляху:\n    -   перетягти папку у вікно git bash (і шлях відобразиться, треба тільки cd на початку дописати)\n    -   написати повністю шлях самостійно\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯкі каталоги git не відстежує?\u003c/summary\u003e\n\n-   в яких немає файлів, або файлів, які ігноруються через .gitignore\n\n\u003c/details\u003e\n\n---\n\n\u003ch3 id=\"git-main-commands\"\u003eGit — основні команди\u003c/h3\u003e\n\n[Конспект](https://github.com/NickTimosh/git_course/blob/main/notebooks/5.%20git%20-%20%D0%91%D0%B0%D0%B7%D0%BE%D0%B2%D1%96%20%D0%9A%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%B8.md)\n\n\u003ch4\u003eДодавання коду і коміти\u003c/h4\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯк додати усі файли однією командою у staging area?\u003c/summary\u003e\n\n-   git add .\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯк додати один файл у staging area?\u003c/summary\u003e\n\n-   git add `file_name`\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯк додати коротке повідомлення до коміту?\u003c/summary\u003e\n\n-   git commit -m `\"your_comment\"`\n-   вказується коротко, які зміни зроблено\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eВнесення комітів через Wim (схема)\u003c/summary\u003e\n\n\u003cimg src=\"./assets//images/commtted-with-WIM.png\" width=\"800\" alt=\"Commit scheme via Wim\"/\u003e\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eВнесення комітів через nano (схема)\u003c/summary\u003e\n\n\u003cimg src=\"./assets//images/edit-files-with-nano.png\" width=\"800\" alt=\"Commit scheme via Wim\"/\u003e\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eВнесення комітів через notepad (схема)\u003c/summary\u003e\n\n\u003cimg src=\"./assets//images/edit-files-with-notepad.png\" width=\"800\" alt=\"Commit scheme via Wim\"/\u003e\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯк змінити текстовий редактор і встановити його основним (команда)?\u003c/summary\u003e\n\n-   git config --global core.editor `\"your_editor\"\n\n\u003c/details\u003e\n\n\u003ch4\u003eІсторія комітів\u003c/h4\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда виводить перелік всіх комітів?\u003c/summary\u003e\n\n-   git log\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯкий прапорець дозволяє вивести історію у більш компактному вигляді?\u003c/summary\u003e\n\n-   --oneline\n-   повний варіант команди: git log --oneline\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда (з прапорцем) дозволяє подивитися зміни комітів?\u003c/summary\u003e\n\n-   git log -p\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯк вийти з інтерактивного режиму (яка клавіша)?\u003c/summary\u003e\n\n-   q (маленька)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє подивитись відмінності  у файлах (і всього репозиторію)?\u003c/summary\u003e\n\n-   git diff (difference)\n\n\u003c/details\u003e\n\n---\n\n\u003ch3 id=\"git-extensions-basics\"\u003eGit — розширення основ\u003c/h3\u003e\n\n[Конспект](https://github.com/NickTimosh/git_course/blob/main/notebooks/6.%20git%20-%20%D0%A0%D0%BE%D0%B7%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%BD%D1%8F%20%D0%9E%D1%81%D0%BD%D0%BE%D0%B2.md)\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка загальноприйнята практика формулювання повідомлень для комітів?\u003c/summary\u003e\n\n-   наказова (імперативна) форма\n    -   (add, write, remove, delete, change, fix etc.)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯк додати тіло коміту, щоб детальніше описати зміни (послідовність кроків)?\u003c/summary\u003e\n\n-   не закривати лапки\n-   клікнути enter\n-   перейти на новий рядок\n-   продовжити писати\n-   закрити лапки\n-   enter (для відправки коміту)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯк додати зміни так, щоб вони були частиною попереднього коміту, а не новоствореним комітом?\u003c/summary\u003e\n\n-   git add .\n-   git commit --amend --no-edit (замість повідомлення)\n-   enter\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eРізниця у кроках між створення нового коміти і зміною існуючого (схема)\u003c/summary\u003e\n\n\u003cimg src=\"./assets//images/commit-creat.png\" width=\"800\" alt=\"Diagram of the difference in steps between creating a new commit and modifying an existing one\"/\u003e\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯк накопичувати зміни з різних файлів для одного коміту?\u003c/summary\u003e\n\n-   внести зміни в різні файли та/або створити нові файли\n-   git add . (додаємо всі файли)\n-   git commit -m `\"your_commit\"`\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯк додати кілька файлів (не всі) за один раз до staging area?\u003c/summary\u003e\n\n-   git add `\u003cfile_1\u003e \u003cfile_3\u003e \u003cfile_5\u003e`\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯк побачити різницю у файлах, що вже додані до staging area?\u003c/summary\u003e\n\n-   git diff --chached\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯк повернути файли зі staging area до working area?\u003c/summary\u003e\n\n-   **після** git add але **до** git commit\n    -   git restore --staged \u003cfile_name\u003e or path to file\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯк подивитися, який саме невідстежуваний файл користувач планує видалити (який прапорець)?\u003c/summary\u003e\n\n-   -n\n-   повна команда: git clean -n\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє видалити невідстежувані файли з git (з прапорцем)?\u003c/summary\u003e\n\n-   git clean -f\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє видалити невідстежувані файли і каталоги з git (з прапорцем)?\u003c/summary\u003e\n\n-   git clean -fd\n    -   **ця команда незворотна**\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє видалити відстежувані файли з індексу та робочого каталогу?\u003c/summary\u003e\n\n-   git rm `\u003cfile_name\u003e` (remove)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє видалити відстежувані файли тільки з індексу, залишивши його у робочому каталозі (з прапорцем)?\u003c/summary\u003e\n\n-   git rm --cached `\u003cfile_name\u003e`\n\n\u003c/details\u003e\n\n---\n\n\u003ch3 id=\"git-recovery-version\"\u003eGit — вступ до відновлення версій\u003c/h3\u003e\n\n[Конспект](https://github.com/NickTimosh/git_course/blob/main/notebooks/7.%20git%20-%20%D0%A0%D0%BE%D0%B1%D0%BE%D1%82%D0%B0%20%D0%B7%20%D0%9A%D0%BE%D0%BC%D1%96%D1%82%D0%B0%D0%BC%D0%B8.md)\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо зберігається в комітах?\u003c/summary\u003e\n\n-   зміни, що були зроблені у файлах\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо має унікальне кожна нова версія файлів?\u003c/summary\u003e\n\n-   \"#\" — хеш-код (як id)\n    -   є унікальним для кожної версії файлу\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eОсновні area (схема)\u003c/summary\u003e\n\n\u003cimg src=\"./assets//images/main-areas-files.png\" width=\"800\" alt=\"Scheme of the main area files in git\"/\u003e\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє повернути закомічений файл (наприклад, після його видалення)?\u003c/summary\u003e\n\n-   git restore `file_name`\n    -   за замовчування звернення до останньої закоміченої версії файлу\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє дізнатися, що було змінено в тому чи іншому коміті (по id)?\u003c/summary\u003e\n\n-   git show `commit_id`\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє повернутися до конкретної версії файлу (а не тільки останньої, по id)?\u003c/summary\u003e\n\n-   git restore --source=`commit_id` `file_name`\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє відмінити зміни, які вже були додані до staging area?\u003c/summary\u003e\n\n-   git restore --staged `file_name`\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє повернутися до попередньої (та/або конкретної версії всього проєкту)?\u003c/summary\u003e\n\n-   git reset `прапорець` `HEAD або ID`\n-   `HEAD` — останній коміт\n-   `ID` — конкретний коміт з переліку попередніх\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯкі прапорці має ця команда і чим вони відрізняються?\u003c/summary\u003e\n\n-   --hard — перезапише повністю до поточної версії, до якої ми звернемося (через id) і повністю видаляє всі зміни\n\n-   --soft — дозволяє зберегти внесені зміни (у staging)\n\n-   --mixed — **використовується за замовчуванням**\n\n    -   всі зміни, які були додані до staging area, будуть прибрані назад у робочу директорію\n    -   тобто файли, які були в staging, знову стають \"modified\", але не видаляються\n\n-   повні команди:\n    -   git reset --hard `ID`\n    -   git reset --soft `ID`\n\n\u003c/details\u003e\n\n---\n\n\u003ch3 id=\"git-branches\"\u003eGit — вступ в git branch\u003c/h3\u003e\n\n[Конспект](\u003chttps://github.com/NickTimosh/git_course/blob/main/notebooks/8.%20git%20-%20Branches%20(%D0%B3%D1%96%D0%BB%D0%BA%D0%B8).md\u003e)\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка основна гілка проєкту?\u003c/summary\u003e\n\n-   main (master) — різна назва, але значить одне й те саме\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eПринцип роботи гілок (схема)\u003c/summary\u003e\n\n\u003cimg src=\"./assets//images/working-principale-branches.png\" width=\"1000\" alt=\"Diagram of how branches work in git\"/\u003e\n\n\u003c/details\u003e\n\n\u003ch4\u003eHEAD\u003c/h4\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо таке HEAD?\u003c/summary\u003e\n\n-   вказівник того, де ми знаходимось\n    -   в якій гілці\n    -   в якому коміті\n-   за замовчуванням знаходимося в останньому коміті\n-   кожна окрема гілка має свій HEAD\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо означає \"detached HEAD\"?\u003c/summary\u003e\n\n-   коли `HEAD` не вказує на останній коміт гілки, а вказує на конкретний коміт або тег\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЗа допомогою якої команди HEAD переходить у стан detached HEAD?\u003c/summary\u003e\n\n-   git checkout `commit_hash`\n-   у цьому випадку `HEAD` вказує на той коміт, а не на гілку\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо дає detached HEAD?\u003c/summary\u003e\n\n-   У стані detached HEAD можна переглядати або тестувати код на певному коміті, але будь-які нові коміти, які будуть зроблені, не будуть пов'язані з жодною гілкою\n-   для збереження коміту, що був зроблений у цьому стані, потрібно створити нову гілку, щоб не втратити зміни\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯк вийти зі стану \"detached HEAD\"?\u003c/summary\u003e\n\n-   використати команду `git checkout \u003cbranch-name\u003e`, де `\u003cbranch-name\u003e` — це назва гілки, на якій ви хотіли б продовжити працювати\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eПринцип роботи HEAD (схема)\u003c/summary\u003e\n\n\u003cimg src=\"./assets/images/working-principale-head.png\" width=\"800\" alt=\"Schematic diagram of the HEAD operating principle\"/\u003e\n\n\u003c/details\u003e\n\n\u003ch4\u003eКонфлікти\u003c/h4\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо таке конфлікти в git?\u003c/summary\u003e\n\n-   ситуація, коли на одних і тих самих рядках, в одних і тим самих файлах вказані різні дані\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо значить \"вирішити конфлікт\"?\u003c/summary\u003e\n\n-   конкретне вказання git, які саме зміни мають бути внесені\n\n\u003c/details\u003e\n\n\u003ch4\u003eMerge vs Rebase\u003c/h4\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо значить merge?\u003c/summary\u003e\n\n-   впровадити зміни до основої гілки (об'єднати всі додаткові гілки в main)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка є альтернативна merge?\u003c/summary\u003e\n\n-   rebase\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЩо дозволяє робити ця альтернатива?\u003c/summary\u003e\n\n-   інтегрувати зміни **після** останньої актуальної версії в main гілці\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯкі складнощі пов'язані з цим способом?\u003c/summary\u003e\n\n-   перезапис id деяких комітів, що може викликати певні складнощі, якщо виникне потреба відновити якісь попереднії версії\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eРізниця між merge і rebase (схема)\u003c/summary\u003e\n\n\u003cimg src=\"./assets/images/difference-between-merge-and-rebase.png\" width=\"1000\" alt=\"Diagram of the difference between merge and rebase\"/\u003e\n\n\u003c/details\u003e\n\n\u003ch4\u003eГілки\u003c/h4\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда виведе список всіх гілок?\u003c/summary\u003e\n\n-   якщо потрібно побачити тільки локальні гілки\n    -   git branch\n-   якщо потрібно побачити віддалені гілки\n    -   git branch -r\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє створити нову гілку?\u003c/summary\u003e\n\n-   git branch `branch_name`\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє перемикатися між гілками?\u003c/summary\u003e\n\n-   git checkout `branch_name`\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє створити і перемкнутися на гілку (одна команда — дві дії)?\u003c/summary\u003e\n\n-   git checkout -b `branch_name`\n    -   -b — від слова branch\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка є альтернативна команда для зміни гілки?\u003c/summary\u003e\n\n-   git switch `branch_name`\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка вона дозволяє за один крок створити гілку і одразу перемкнутися на неї (синтаксис команди)?\u003c/summary\u003e\n\n-   git switch -b `branch_name`\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка різниця між цими двома варіантами команд?\u003c/summary\u003e\n\n-   git switch:\n    -   більш проста у розуміння і використанні\n    -   використовується спеціально для перемикання (та/або для створення і перемикання) між гілками\n-   git checkout:\n    -   більш універсальна\n    -   використовується для:\n        -   перемикання (та/або для створення і перемикання) між гілками\n        -   зміни гілок\n        -   відновлення файлів (скасування змін)\n        -   перемикання між комітами\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eВ якій гілці ми маємо знаходитися перед тим, як зробити об'єднання гілок?\u003c/summary\u003e\n\n-   в тій, в яку хочемо інтегрувати зміни (в цільовій)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє об'єднати гілки?\u003c/summary\u003e\n\n-   git merge `branch_name`\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eНазву якої гілки ми маємо писати у команді об'єднання?\u003c/summary\u003e\n\n-   назву гілки, **яку об'єднуємо** з цільовою гілкою (тобто назву альтернативної, додаткової гілки)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда дозволяє тільки передати зміни, але не об'єднувати гілки?\u003c/summary\u003e\n\n-   git fetch\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка команда (з прапорцем) дозволяє видалити гілку?\u003c/summary\u003e\n\n-   git branch -d `branch_name`\n-   git branch -D `branch_name`\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eЯка різниця між цими двома прапорцями?\u003c/summary\u003e\n\n-   **-d** (soft delete) — не дозволить видалити гілку, яка ще не була передана до main (яка ще не інтегрована)\n-   **-D** (hard delete) — видалить гілку незалежно від того, чи вона вже інтегрована у main чи ще ні (безумовне видалення гілки)\n\n\u003c/details\u003e\n\n---\n\n\u003ch2\u003eGitHub\u003c/h2\u003e\n\n\u003ch3 id=\"github-overview\"\u003eGitHub — короткий огляд\u003c/h3\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrontendlovers%2Fgit-for-beginners","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrontendlovers%2Fgit-for-beginners","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrontendlovers%2Fgit-for-beginners/lists"}