Co to jest przycinanie Git?


86

Przypadkowo przyciąłem niektóre zdalne gałęzie i naprawdę nie wiem, jakie są tego konsekwencje (kliknąłem przycisk „Usuń zdalne gałęzie” w rozszerzeniach Git, myśląc, że spowoduje to usunięcie zdalnej gałęzi).

Oficjalna dokumentacja mówi "git-prune - Usuń wszystkie niedostępne obiekty z bazy danych obiektów". Naprawdę nie rozumiem, co to oznacza. Domyślam się, że mogło to spowodować usunięcie połączonych gałęzi, ale nie jestem pewien.



Odpowiedzi:


91

„Wyczyść zdalne gałęzie” w rozszerzeniach Git wykonuje git remote prunepolecenie, które usuwa lokalne zdalne gałęzie śledzenia, w których gałąź już nie istnieje na zdalnym.

Zobacz tutaj: https://git-scm.com/docs/git-remote#git-remote-empruneem


więc zasadniczo daje priorytet Twojemu zdalnemu i dostosowuje lokalny do Twoich zdalnych oddziałów?
Honey

3
@ Kochanie, po prostu usuwa lokalne zdalne gałęzie śledzenia , normalne gałęzie nie są dotykane.
1615903

32

To tylko śmieci zbiera twoje gałęzie.

Oznacza to, że jeśli obiekt (zatwierdzenie) nie może zostać osiągnięty w żadnym z przodków twojej gałęzi, zostanie on usunięty z bazy danych git i jako taki nie będzie już dostępny.

To tylko trochę oczyszcza repozytorium git i czyni je lżejszym.


4
Zgodnie z dokumentacją, w przypadku zadań związanych z utrzymaniem domu, takich jak ta, może być lepiej zrobić git gcraczej niż a, git prunektóre zasadniczo będzie również wykonywać git prune.
kovac

1
Głos przeciw: ta odpowiedź (i pytanie w tej sprawie) myli git prunei git remote prune. Nie są takie same, ta ostatnia faktycznie czyści gałęzie, które już nie istnieją na pilocie, pozostawiając nietknięte oddziały lokalne.
JBert

12

Ważne jest, aby wiedzieć, że śliwka jest związana z repo . Nie wszyscy wiedzą, że możesz połączyć lokalne repozytorium z wieloma pilotami. Przydaje się, gdy na przykład pracujesz z projektem open source i jest wymuszany do pracy za pomocą forków.

Tak więc polecenie prune wymaga nazwy repozytorium. W większości przypadków tak git remote prune origin, ale możesz zadzwonić do swojego repozytorium w dowolny sposób, nie musi origin.


2

Mogą istnieć zdalne gałęzie funkcji, które są usuwane po scaleniu ich w master. Mogliśmy usunąć gałęzie funkcji w celu oczyszczenia. Ale jeśli wyewidencjonowałeś usuniętą gałąź do systemu lokalnego i ustawiłeś na status śledzenia, git pull nie usunie tych lokalnych gałęzi (ponieważ są już odłączone od serwera). Aby oczyścić tego rodzaju lokalne gałęzie osierocone, git pruneprzyda się polecenie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.