Jak usunąć usunięte nazwy gałęzi z autouzupełniania?
120
Kiedyś git branch -d myBranchusuwałem oddział. Jednak kiedy jestem na master i próbuję wyewidencjonować nową gałąź z git checkout, myBranchnadal pojawia się w autouzupełnianiu kart.
Jak usunąć nazwę myBranchz autouzupełniania kart git checkout?
Czy git branch -anadal lista albo myBranchalbo origin/myBranch? Zauważ, że nawet jeśli myBranchnie istnieje, git checkout myBranchnadal jest poprawnym skrótem do git checkout -b myBranch origin/myBranchif origin/myBranchistnieje.
Jednym z możliwych powodów jest to, że jeśli zdalna gałąź (np. origin/myBranch) Nadal istnieje, to git checkout myBranchodniesie sukces jako alternatywa dla git checkout -b myBranch origin/myBranch. Ma to na celu wygodę w typowym przypadku wyewidencjonowania zdalnego oddziału po raz pierwszy, tworząc lokalną gałąź śledzenia o identycznej nazwie.
Są też inne możliwości, w zależności od tego, czego dokładnie używasz do wykonania, ale to jedna z pierwszych rzeczy, które sprawdzę. Jeśli biegasz git branch -ai jest na origin/myBranchliście (lub jeden dla pilota innego niż origin, jeśli taki masz), to jest to prawdopodobnie winowajca.
Dzięki! To wydaje się być winowajcą. origin/myBranchwciąż istnieje. Jeśli usunąłem myBranchoddział na Github (przez interfejs online), czy mogę bezpiecznie zadzwonić w git branch -d origin/myBranchcelu usunięcia tego zdalnego oddziału?
@JohnHoffman To powinno być bezpieczne, ale myślę, że byłoby lepiej git fetch --prune origin. Spowoduje to wyczyszczenie wszystkich lokalnych gałęzi śledzenia, które już nie istnieją na pilocie.
@twalberg Nie wierzę, że po prostu usunięcie lokalnej i zdalnej gałęzi wystarczy, aby pozbyć się wszystkich starych gałęzi w autouzupełnianiu. Uważam, że musisz, aby git fetch --prune originlokalne odniesienia do zdalnych oddziałów zniknęły w autouzupełnianiu. Dobrze byłoby przenieść to z komentarza do odpowiedzi. W każdym razie dziękuję za twoją odpowiedź, ponieważ pomogła mi!
git branch -azaprowadził mnie na właściwą drogę; mój współpracownik zasugerował, git fetch --prune --allaby przyciąć wszystkie martwe gałęzie ze wszystkich pilotów, co jest przydatne podczas pracy z wieloma programistami z dużą ilością widelców.
Publikując to jako własną odpowiedź, ponieważ jest to poprawka w jednym wierszu, ale jeśli zagłosujesz, pamiętaj, aby zagłosować na powyższą odpowiedź @ twalberg.
sugestia @ twalberga, aby git branch -apoprowadzić mnie na właściwą drogę; mój współpracownik zasugerował, git fetch --prune --allaby przyciąć wszystkie martwe gałęzie ze wszystkich pilotów, co jest przydatne podczas pracy z wieloma programistami z dużą ilością widelców.
Chociaż zaakceptowana odpowiedź daje dobre wyjaśnienie, dlaczego tak się dzieje, ta odpowiedź przedstawia rzeczywiste rozwiązanie problemu i dlatego powinna zostać zaakceptowana przez IMHO.
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.
git branch -anadal lista albomyBranchalboorigin/myBranch? Zauważ, że nawet jeślimyBranchnie istnieje,git checkout myBranchnadal jest poprawnym skrótem dogit checkout -b myBranch origin/myBranchiforigin/myBranchistnieje.