Git Worktree
Ostatnia aktualizacja
git worktree pozwala, by jedno repozytorium miało naraz kilka katalogów roboczych, każdy na innej gałęzi. Zamiast odkładać pracę do stasha, żeby przełączyć gałąź, otwierasz drugą gałąź w osobnym folderze: przeglądasz PR, robisz hotfix albo budujesz jedną gałąź, edytując drugą, a wszystko korzysta z tej samej historii .git.
Wypróbuj te polecenia w terminalu online: prawdziwa powłoka w przeglądarce, bez instalowania czegokolwiek.
Składnia
| Command | What it does |
|---|---|
git worktree add ../hotfix hotfix | Otwiera hotfix w sąsiednim folderze |
git worktree add -b new ../new | Tworzy gałąź i worktree dla niej |
git worktree list | Wyświetla wszystkie worktree i ich gałęzie |
git worktree remove ../hotfix | Usuwa worktree |
git worktree prune | Czyści nieaktualne wpisy worktree |
Przykład krok po kroku
Napraw błąd na main bez naruszania gałęzi z nową funkcją.
| Step | Command | Result |
|---|---|---|
| 1 | git worktree add ../fix main | main otwarta w ../fix |
| 2 | Popraw i zrób commit w ../fix | Hotfix gotowy na main |
| 3 | git worktree remove ../fix | Sprzątanie; gałąź z funkcją pozostaje nietknięta |
Git worktree: najczęstsze pytania
Czym jest git worktree?
Worktree to dodatkowy katalog roboczy podpięty do tego samego repozytorium, ustawiony na inną gałąź lub commit. Pozwala mieć kilka gałęzi otwartych jednocześnie w osobnych folderach, które dzielą jedną historię
.git, więc nie musisz robić stasha ani klonować repozytorium, żeby pracować na dwóch gałęziach naraz.Jak dodać worktree?
Uruchom
git worktree add <path> <branch>, na przykład git worktree add ../hotfix hotfix. Git otworzy tę gałąź w nowym folderze. Aby od razu utworzyć nową gałąź, użyj git worktree add -b <newbranch> <path>.Kiedy używać worktree zamiast przełączania gałęzi?
Wtedy, gdy przełączenie gałęzi byłoby kłopotliwe: masz niezacommitowane zmiany, trwa długie budowanie, którego nie chcesz przerywać, albo musisz porównać dwie gałęzie obok siebie. Worktree daje ci drugą gałąź we własnym folderze, bez ruszania bieżącej.
Jak usunąć worktree?
Uruchom
git worktree remove <path>. Jeśli folder został usunięty ręcznie, uruchom git worktree prune, żeby wyczyścić nieaktualne wpisy. Nie da się usunąć głównego worktree (oryginalnego folderu repozytorium), tylko te dodatkowe, które dodajesz.Czy mogę to przećwiczyć online?
Tak. Otwórz terminal online, aby uruchomić
git worktree w prawdziwej powłoce w przeglądarce, bez instalowania czegokolwiek. Darmowy interaktywny kurs Git w Coddy krok po kroku omawia też pracę z gałęziami.