Mam w swoim repozytorium master i dev branch. Chcę usunąć gałąź master z mojego komputera, aby przypadkowo się do niej nie zobowiązać (tak się stało ...).
Pojawiają się tutaj pytania dotyczące lokalnego i zdalnego usuwania oddziałów , ale nie byłem w stanie dowiedzieć się, jak usunąć oddział tylko lokalnie.
Jedna odpowiedź mówi, że używa tego:
git branch -d local_branch_name
Ale próbowałem tego i gałąź nadal pojawia się w aplikacji GitHub.
Deleted branch master (was e8a8e29).
Odpowiedzi:
Myślę (na podstawie twoich komentarzy), że rozumiem, co chcesz zrobić: chcesz, aby lokalna kopia repozytorium nie miała ani zwykłej gałęzi lokalnej
master
, ani gałęzi zdalnego śledzeniaorigin/master
, nawet jeśli repozytorium, które sklonowałeś - github —Ma lokalną gałąźmaster
, której nie chcesz usunąć z wersji github.Możesz to zrobić, usuwając lokalnie gałąź zdalnego śledzenia, ale po prostu powróci za każdym razem, gdy poprosisz swojego gita o zsynchronizowanie twojego lokalnego repozytorium ze zdalnym repozytorium, ponieważ twój git pyta git "jakie masz gałęzie" i to mówi „mam
master
”, więc twój git (re) tworzyorigin/master
dla ciebie, więc twoje repozytorium ma to, co ich ma.Aby lokalnie usunąć gałąź zdalnego śledzenia za pomocą interfejsu wiersza poleceń:
ale znowu, po prostu wróci po ponownej synchronizacji. Możliwe jest również pokonanie tego (za pomocą
remote.origin.fetch
manipulacji), ale prawdopodobnie lepiej będzie po prostu być na tyle zdyscyplinowanym, aby nie tworzyć ani nie modyfikowaćmaster
lokalnie.źródło
Wymuś usunięcie lokalnego oddziału:
[ UWAGA ]:
"-D"
jest opcją wymuszonego usuwania.źródło
O ile rozumiem pierwotny problem, przez pomyłkę dodałeś zatwierdzenia do lokalnego serwera głównego i jeszcze nie wprowadziłeś zmian. Teraz chcesz anulować zmiany i masz nadzieję na usunięcie lokalnych zmian i utworzenie nowej gałęzi głównej ze zdalnej.
Możesz po prostu zresetować zmiany i ponownie załadować master ze zdalnego serwera:
źródło
Aplikacja Github dla Windows pokazuje wszystkie zdalne gałęzie repozytorium. Jeśli usunąłeś oddział lokalnie z rozszerzeniem
$ git branch -d [branch_name]
, zdalna gałąź nadal istnieje w repozytorium Github i pojawi się niezależnie w aplikacji Windows Github.Jeśli chcesz całkowicie usunąć gałąź (również zdalnie), użyj powyższego polecenia w połączeniu z
$ git push origin :[name_of_your_new_branch]
. Ostrzeżenie: to polecenie usuwa wszystkie istniejące gałęzie i może spowodować utratę kodu. Uważaj, nie sądzę, żeby to było to, co próbujesz zrobić.Jednak za każdym razem, gdy usuniesz zmiany lokalnego oddziału, zdalna gałąź będzie nadal wyświetlana w aplikacji. Jeśli nie chcesz dalej wprowadzać zmian, po prostu zignoruj to i nie klikaj, w przeciwnym razie możesz sklonować repozytorium. Jeśli masz więcej pytań, daj mi znać.
źródło
musisz przełączyć się do innej gałęzi i spróbować tego samego.
git branch -d
źródło
Po tagach zakładam, że używasz Githuba. Dlaczego nie utworzyć reguł ochrony gałęzi dla swojej gałęzi głównej? W ten sposób, nawet jeśli spróbujesz popchnąć do mistrzostwa, odrzuci to.
Poleciłbym również zrobić to samo dla twojej gałęzi deweloperów.
źródło