Git worktree: kilka gałęzi wypakowanych naraz

Przewodnik po git worktree

Git worktree: add, list, remove i prune z przykładami | We.Inc

Zbuduj dokładne polecenie git worktree add dla nowej gałęzi, istniejącej gałęzi lub odłączonego commita, a potem bezpiecznie listuj, blokuj, przenoś, usuwaj i czyść worktree.

git worktree pozwala jednemu repozytorium mieć kilka katalogów roboczych, każdy na własnej gałęzi, ze wspólnym magazynem obiektów. Uruchom git worktree add ../hotfix -b hotfix, aby utworzyć nowy katalog na nowej gałęzi, git worktree list, aby zobaczyć wszystkie, i git worktree remove ../hotfix po zakończeniu pracy. Drugi klon nie jest potrzebny.

Polecenia worktree, których potrzebujesz na co dzień

Odkładanie zmian do stasha, przełączanie gałęzi i przebudowywanie projektu za każdym razem, gdy ktoś prosi o szybką poprawkę, to strata czasu. Worktree daje Ci drugie wypakowanie tego samego repozytorium w innym katalogu, więc długie testy, code review i pilna łatka mogą mieć każde swój katalog. Użyj generatora, aby uzyskać polecenia, a potem zajrzyj do ściągi z rzadziej używanymi podpoleceniami.

Najczęściej zadawane pytania

Czym różni się worktree od klonu?

Klon kopiuje całe repozytorium wraz z historią. Powiązane worktree współdzieli obiekty i referencje oryginalnego repozytorium i dodaje tylko nowy katalog roboczy oraz trochę metadanych, więc commity zrobione w jednym są od razu widoczne w pozostałych bez pobierania.

Czy dwa worktree mogą używać tej samej gałęzi?

Domyślnie nie. git worktree add odrzuca gałąź, która jest już wypakowana gdzie indziej, bo dwa katalogi przesuwające jedną gałąź nadpisywałyby sobie nawzajem pracę. --force to obchodzi, ale odłączony HEAD lub druga gałąź to prawie zawsze lepszy wybór.

Dlaczego git worktree remove się nie udaje?

Odmawia, gdy katalog zawiera zmodyfikowane pliki śledzone lub pliki nieśledzone, abyś nie stracił pracy. Najpierw zrób commit lub wyczyść katalog albo dodaj --force. Zablokowane worktree wymaga podwójnego --force.

Co robi git worktree prune?

Usuwa pozostałe wpisy, które git przechowuje dla worktree, których katalogi już nie istnieją, na przykład po usunięciu jednego przez rm -rf. Dodaj -n, aby najpierw zobaczyć, co zostałoby usunięte.

Jak zmienić nazwę lub przenieść katalog worktree?

Użyj git worktree move <worktree> <new-path>, aby git zaktualizował swoje wpisy. Jeśli już przeniosłeś go menedżerem plików, uruchom git worktree repair z nowej lokalizacji, aby go ponownie połączyć.

Dobre powody, by używać worktree

Co jest współdzielone, a co nie

Wszystkie podpolecenia git worktree

Podpolecenia git worktree i ich składnia

Hotfix bez opuszczania swojej gałęzi

Łatka na produkcji, gdy funkcja jest w połowie gotowa

Katalog z Twoją funkcją zostaje dokładnie taki, jaki był. Poprawka żyje w sąsiednim katalogu i jest usuwana po wypchnięciu.

Lista worktree w formie przyjaznej dla skryptów

Każde worktree to blok linii oddzielony pustą linią: jego ścieżka, hash HEAD i gałąź (lub detached).

Generator poleceń worktree

Katalog dla worktree

Nazwa gałęzi

Zacznij od (gałąź, tag lub commit)

Co wypakować

Nowa gałąź

Istniejąca gałąź

Odłączony commit

Utwórz i otwórz

Gdy skończysz

Wpisz ścieżkę katalogu, aby zobaczyć polecenia.

Wskazówka: ścieżka zaczynająca się od ../ umieszcza nowy katalog obok głównego katalogu repozytorium.

Zacznij za darmo · Bez karty kredytowej

Powiązane: Poradniki

Produkt

Dla kogo

Funkcje

Zasoby

Firma

Mapa strony