Git — це незамінний інструмент для розробників, який забезпечує контроль версій для проєктів будь-якого масштабу. Цей блог проведе вас через усі основні команди Git, які знадобляться для успішного проходження технічного інтерв'ю, з реальними прикладами та детальними поясненнями кожної команди та її опцій. Незалежно від того, використовуєте ви GitHub, GitLab або будь-яку іншу платформу на базі Git, цей посібник допоможе вам.
Чому 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 не може автоматично злити зміни, наприклад:
- Дві гілки змінюють однаковий рядок в файлі по-різному.
- Файл був видалений в одній гілці, але змінений в іншій.
Кроки для вирішення конфліктів:
- Ідентифікувати конфлікти:
git status
- Редагувати конфліктні файли: Вручну вирішити секції, позначені
<<<<<<
,======
,>>>>>>
. - Позначити як вирішене:
git add
- Продовжити злиття:
git commit
Детальний розбір команди git reset
git reset
— це потужна команда в Git, яка дозволяє скасувати зміни, переміщуючи HEAD (вказівник поточної гілки) на попередній коміт. Вона використовується для скасування комітів, скидання відслідковування файлів або відхилення змін, залежно від того, як її використовувати.
Команда git reset
має три основні режими:
- Soft reset (
--soft
):
- Зберігає ваші зміни в індексі (зоні індексації), так що зміни готові до повторного коміту.
Приклад: git reset --soft HEAD~1
- Mixed reset (
--mixed
):
- Скасовує зміни із зони індексації, але зберігає їх у вашій робочій директорії.
- Це стандартна поведінка
git reset
(якщо не вказано жодних опцій).
Приклад: git reset --mixed HEAD~1
- Hard reset (
--hard
):
- Скидає як зону індексації, так і робочу директорію, щоб вони відповідали зазначеному коміту, фактично відкидаючи всі локальні зміни.
Приклад: git reset --hard HEAD~1
- Hard reset: Будьте обережні, оскільки це може назавжди видалити зміни.
Висновок
Цей посібник охоплює все — від базових команд до просунутих технік, підготуючи вас до будь-якого питання про Git на співбесіді. Найкращий спосіб опанувати Git — це практика. Експериментуйте з цими командами та робочими процесами, щоб поглибити своє розуміння.
Який ваш улюблений трюк з Git? Поділіться ним у коментарях нижче!
Перекладено з: Git Basics and Beyond: Your Interview Survival Guide