Git Worktrees Tutorial #2 - Adding Git Worktrees
Summary
Резюме
Цей посібник пояснює процес використання Git worktrees для одночасної роботи над кількома гілками в одному репозиторії без необхідності робити коміти або використовувати stash. Використання окремих робочих директорій дозволяє розробникам ефективно перемикатися між завданнями, зберігаючи стан кожної гілки ізольованим.
Q: Як створити новий робочий простір (worktree) у Git?
A: Використовується команда git worktree add -b <назва_гілки> <шлях>. Рекомендується створювати нову папку за межами поточного проекту (використовуючи ../), щоб уникнути вкладеності. Git автоматично створить нову гілку на основі поточного стану HEAD, якщо не вказано інше.
Q: Як перевірити активні робочі простори?
A: Команда git worktree list виводить список усіх пов'язаних директорій та гілок, які в них наразі перевірені (checked out).
Q: Що відбувається, якщо спробувати видалити worktree з незбереженими змінами?
A: Git запобігає видаленню, щоб уникнути втрати даних. Якщо видалення необхідне, потрібно використовувати прапор --force разом із командою git worktree remove <шлях>.
Q: Як вказати конкретну гілку для старту нового worktree?
A: Замість використання поточного HEAD, можна додати назву базової гілки (наприклад, main) у кінці команди: git worktree add -b <нова_гілка> <шлях> <базова_гілка>.
Питання для повторення
- Чому важливо створювати нову директорію для worktree за межами існуючого проекту?
- Яка різниця між видаленням worktree та видаленням гілки в Git?
- Як Git визначає початковий стан коду при створенні нового worktree за замовчуванням?
Key Points
- 1
Git worktrees дозволяють працювати над кількома гілками одночасно без використання stash або незавершених комітів.
- 2
Команда
git worktree addстворює нову робочу директорію та автоматично перемикає її на вказану гілку. - 3
За замовчуванням новий worktree базується на поточному стані HEAD, але можна вказати іншу гілку як точку відліку.
- 4
Команда
git worktree listє основним інструментом для відстеження всіх активних робочих директорій репозиторію. - 5
Видалення worktree не видаляє саму гілку; для повного очищення потрібно окремо видалити гілку за допомогою
git branch -d. - 6
Git захищає користувача від випадкової втрати даних, блокуючи видалення worktree з незбереженими змінами, якщо не використано прапор
--force.