Основи Git та більше: Ваш посібник для успіху на співбесіді

Git — це незамінний інструмент для розробників, який забезпечує контроль версій для проєктів будь-якого масштабу. Цей блог проведе вас через усі основні команди Git, які знадобляться для успішного проходження технічного інтерв'ю, з реальними прикладами та детальними поясненнями кожної команди та її опцій. Незалежно від того, використовуєте ви GitHub, GitLab або будь-яку іншу платформу на базі Git, цей посібник допоможе вам.

pic

Чому Git важливий

У сучасному процесі розробки співпраця є ключовою. Git дозволяє командам працювати разом ефективно, відстежувати зміни та підтримувати чисту і структуровану кодову базу. Знання Git — це не просто перевага для розробників, а необхідність.

Початок роботи з Git

1. Ініціалізація репозиторію

Щоб почати відстежувати зміни в проєкті, ініціалізуйте Git-репозиторій:

git init

Ця команда налаштовує Git у вашій локальній папці проєкту, створюючи директорію .git, яка відстежує зміни.

Опції:

  • git init --bare: Створює bare-репозиторій для спільного використання, зазвичай на віддаленому сервері.

2. Клонування репозиторію

Скопіюйте існуючий репозиторій на свою локальну машину:

git clone 

Опції:

  • git clone: Вказати ім'я цільової директорії.
  • git clone --depth=1: Клонувати тільки останню версію для швидшого налаштування.

Відстеження змін

3. Перевірити статус репозиторію

Перегляньте поточний стан вашої робочої директорії:

git status

Використовуйте цю команду після внесення змін, щоб побачити, які файли були змінені, додані або не відстежуються.

4. Додати зміни до зони індексації

Підготуйте файли для коміту:

git add 

Щоб додати всі зміни:

git add .

Ви оновили функціональність і хочете зафіксувати зміни.

Опції:

  • git add -p: Інтерактивне додавання змін.

5. Видалити файли зі зони індексації

Скасуйте додавання файлів, які були випадково додані:

git reset 

Корисно, якщо ви додали неправильний файл і хочете його скасувати.

Фіксація змін

6. Зробити коміт

Збережіть додані зміни з описовим повідомленням:

git commit -m "Add feature X"

Ви зробили помилку в повідомленні коміту і хочете виправити її.

Опції:

  • git commit --amend: Редагувати останнє повідомлення коміту або додати зміни до попереднього коміту.
  • git commit -a -m "Message": Автоматично додати зміни та зробити коміт для відслідковуваних файлів.

7. Переглянути історію комітів

Перегляньте історію комітів репозиторію:

git log

Ви проводите налагодження і хочете побачити нещодавні зміни.

Опції:

  • git log --oneline: Стиснутий вигляд хешів комітів і повідомлень.
  • git log --graph: Візуалізує злиття гілок.
  • git log -p: Показує різниці, внесені кожним комітом.

Сховати зміни

8. Сховати незакомічені зміни

Тимчасово збережіть незакомічені зміни:

git stash

Опції:

  • git stash save "Message": Додайте опис до вашого сховища.
  • git stash --include-untracked: Сховати незвідслідковувані файли.

9. Переглянути список схованих змін

git stash list

Щоб перевірити збережені сховища.

10. Застосувати сховані зміни

git stash apply

Опції:

  • git stash pop: Застосувати останнє сховище та видалити його зі списку.
  • git stash apply stash@{index}: Застосувати певне сховище.

Гілки та злиття

Типи гілок та стратегії:

  • Гілки функцій: Для розробки нових функцій.
  • Гілки релізів: Для стабілізації нової версії.
  • Гілки виправлення помилок: Для критичних виправлень у продукції.

Популярні стратегії роботи з гілками:

  • Git Flow: Структуровані гілки з develop, release, feature і hotfix.
  • GitHub Flow: Спрощений підхід з використанням гілки main і короткоживучих гілок для функцій.
  • Trunk-Based Development: Одна гілка (main) з частими маленькими злиттями.

11. Створити гілку

git branch 

12. Перемкнутися на гілку

git checkout 

13. Створити та перемкнутися на гілку

git checkout -b 

## Перегляд гілок

git branch
```

Опції:

  • git branch -r: Переглянути віддалені гілки.
  • git branch -a: Переглянути всі локальні та віддалені гілки.

15. Злиття гілок

Об'єднайте зміни з однієї гілки в іншу:

git merge 

Опції:

  • git merge --squash: Злити коміти в один.

16. Видалення гілки

git branch -d 

Опції:

  • git branch -D: Примусове видалення гілки.

Робота з віддаленими репозиторіями

17. Додати віддалений репозиторій

git remote add origin 

Щоб пов'язати ваш локальний репозиторій з віддаленим.

18. Переглянути віддалені репозиторії

git remote -v

19. Відправити зміни до віддаленого репозиторію

git push origin 

20. Завантажити зміни з віддаленого репозиторію

Завантажити зміни без їх злиття:

git fetch

21. Витягнути зміни з віддаленого репозиторію

Завантажити та злити зміни:

git pull

Опції:

  • git pull --rebase: Повторно застосувати ваші зміни поверх останніх завантажених змін.

Просунуті команди Git

22. Rebase

Застосувати коміти поверх іншої базової гілки:

git rebase 

23. Cherry-Pick

Застосувати конкретний коміт до вашої поточної гілки:

git cherry-pick 

24. Squash комітів

Об'єднати кілька комітів в один:

git rebase -i 

Робота з видаленими гілками та комітами

25. Відновлення видалених гілок

git reflog

Знайдіть хеш коміту видаленої гілки та відновіть її:

git branch  

Вирішення конфліктів

Конфлікти виникають, коли Git не може автоматично злити зміни, наприклад:

  • Дві гілки змінюють однаковий рядок в файлі по-різному.
  • Файл був видалений в одній гілці, але змінений в іншій.

Кроки для вирішення конфліктів:

  1. Ідентифікувати конфлікти: git status
  2. Редагувати конфліктні файли: Вручну вирішити секції, позначені <<<<<<, ======, >>>>>>.
  3. Позначити як вирішене: git add
  4. Продовжити злиття: git commit

Детальний розбір команди git reset

git reset — це потужна команда в Git, яка дозволяє скасувати зміни, переміщуючи HEAD (вказівник поточної гілки) на попередній коміт. Вона використовується для скасування комітів, скидання відслідковування файлів або відхилення змін, залежно від того, як її використовувати.

Команда git reset має три основні режими:

  1. Soft reset (--soft):
  • Зберігає ваші зміни в індексі (зоні індексації), так що зміни готові до повторного коміту.

Приклад: git reset --soft HEAD~1

  1. Mixed reset (--mixed):
  • Скасовує зміни із зони індексації, але зберігає їх у вашій робочій директорії.
  • Це стандартна поведінка git reset (якщо не вказано жодних опцій).

Приклад: git reset --mixed HEAD~1

  1. Hard reset (--hard):
  • Скидає як зону індексації, так і робочу директорію, щоб вони відповідали зазначеному коміту, фактично відкидаючи всі локальні зміни.

Приклад: git reset --hard HEAD~1

  • Hard reset: Будьте обережні, оскільки це може назавжди видалити зміни.

Висновок

Цей посібник охоплює все — від базових команд до просунутих технік, підготуючи вас до будь-якого питання про Git на співбесіді. Найкращий спосіб опанувати Git — це практика. Експериментуйте з цими командами та робочими процесами, щоб поглибити своє розуміння.

Який ваш улюблений трюк з Git? Поділіться ним у коментарях нижче!

Перекладено з: Git Basics and Beyond: Your Interview Survival Guide

Leave a Reply

Your email address will not be published. Required fields are marked *