Usuń gałęzie w Bitbucket


140

Stworzyłem wiele oddziałów w jednym z naszych repozytoriów. Te gałęzie służą do testowania, zanim zostaną wyciągnięte do mastera. Teraz widzę ich wiele na liście i nigdy więcej z niej nie skorzystamy. Jak usunąć te gałęzie bezpośrednio do Bitbucket?

Odpowiedzi:


233

Jeśli gałęzie są tylko lokalne, możesz użyć -d, jeśli gałąź została scalona, ​​na przykład

git branch -d branch-name

Jeśli gałąź zawiera kod, którego nigdy nie planujesz scalać, użyj zamiast tego -D .

Jeśli gałąź znajduje się w repozytorium upstream (na Bitbucket), możesz usunąć zdalne odwołanie za pomocą

git push origin :branch-name

Ponadto, jeśli jesteś w witrynie Bitbucket, możesz usunąć wypchnięte gałęzie, przechodząc do karty Gałęzie funkcji w obszarze Zatwierdzenia w witrynie. Znajdziesz tam ikonę wielokropka. Kliknij to, a następnie wybierz Usuń gałąź . Tylko upewnij się, że chcesz tam porzucić wszystkie zmiany!

wprowadź opis obrazu tutaj


2
Jeśli uruchomię 'git branch -r', zauważę, że BB nie usuwa gałęzi z serwera. Nie pojawia się już w GUI, ale pokazuje się na serwerze git.
jersey bean

40

Aby usunąć oddział z Bitbucket,

  1. Idź do Przeglądu (Twoje repozytorium> gałęzie na lewym pasku bocznym)
  2. Kliknij liczbę oddziałów (powinna wyświetlić listę oddziałów)
  3. Kliknij oddział, który chcesz usunąć
  4. W prawym górnym rogu kliknij 3 kropki (oprócz przycisku Scal).
  5. Istnieje opcja „Usuń oddział”, jeśli masz uprawnienia.

1
Gdzie jest „przegląd”? Jeśli masz na myśli Źródło, nie widzę opcji „Usuń gałąź” pod ...
niico,

7
Krok 1 powinien brzmieć „przejdź do repozytorium i kliknij„ gałęzie ”na lewym pasku bocznym”.
Noumenon

20

Oprócz odpowiedzi udzielonej przez @Marcus możesz teraz usunąć zdalny oddział poprzez:

git push [remote-name] --delete [branch-name] 

9

w Bitbucket przejdź do gałęzi w menu po lewej stronie.

  1. Wybierz oddział, który chcesz usunąć.
  2. Przejdź do kolumny akcji, kliknij trzy kropki (...) i wybierz usuń.

8

Mogłem usunąć większość swoich gałęzi, ale jeden wyglądał tak i nie mogłem go usunąć:

wprowadź opis obrazu tutaj

Okazało się, że ktoś siedział Branch permissionspod Settingsi stamtąd niesprawdzony Allow deleting this branch. Mam nadzieję, że to może komuś pomóc.

wprowadź opis obrazu tutaj

Aktualizacja : Gdzie znajdują się ustawienia z pytania w komentarzu. Wejdź do repozytorium, które chcesz edytować, aby uzyskać menu. Aby to zmienić, możesz potrzebować uprawnień administratora.

wprowadź opis obrazu tutaj


Gdzie można znaleźć „Ustawienia”? Muszę usunąć główną gałąź lub wszystkie znajdujące się w niej pliki. Jak mam to zrobić?

3

Krok 1: Zaloguj się do Bitbucket

Krok 2: Wybierz swoje repozytorium na liście repozytoriów. wprowadź opis obrazu tutaj

Krok 3: Wybierz gałęzie w menu po lewej stronie. wprowadź opis obrazu tutaj

Krok 4: Kursor na gałęzi kliknij trzy kropki (...) Wybierz Usuń (patrz poniżej) wprowadź opis obrazu tutaj


2

Jeśli używasz Pycharm IDE do programowania i już dodałeś do niego Git. możesz bezpośrednio usunąć zdalną gałąź z pycharm. Z paska narzędzi VCS -> Git -> Branże -> Wybierz gałąź -> i Usuń . Usunie go ze zdalnego serwera git.


2

Napisałem ten mały skrypt, gdy liczba gałęzi w moim repozytorium przekroczyła kilkaset. Nie wiedziałem o innych metodach (z CLI), więc zdecydowałem się zautomatyzować to za pomocą selenu. Po prostu otwiera witrynę Bitbucket, przechodzi do oddziałów, przewija stronę do końca i klika menu opcji każdego oddziału -> klika przycisk Usuń -> klika Tak. Można go dostroić, aby zachować ostatnie N (100 - domyślnie) gałęzi i pomijać gałęzie o określonych nazwach (master, develop - default, może być więcej). Jeśli to ci odpowiada, możesz spróbować w ten sposób.

https://github.com/globad/remove-old-branches

Wszystko, czego potrzebujesz, to sklonować repozytorium, pobrać odpowiednią wersję Chrome-webdrivera, wprowadzić kilka stałych, takich jak URL, do repozytorium i uruchomić skrypt.

Kod jest wystarczająco prosty do zrozumienia. Jeśli masz jakieś pytania, napisz komentarze / utwórz problem.


1

Spróbuj tego polecenia, wyczyści wszystkie gałęzie, które zostały scalone z developgałęzią.

for i in `git branch -r --merged origin/develop| grep origin | grep -v '>' \
   | grep -v master | grep -v develop | sed -E "s|^ *origin/||g"`; \
do \
   git push origin $i --delete; \
done

0

W Android Studio opcje w prawym rogu IDE:

  • Zmień / sprawdź inny lokalny oddział
  • Usuń niechciane oddziały lokalne (np. V0.0.1 ...)
  • Usuń niechciane gałęzie zdalne (np. Origin / v0.0.1 ...) - ten krok spowoduje usunięcie oddziałów w BitBucket, jeśli nie uniemożliwiono ich usunięcia i nie są one ODDZIAŁEM GŁÓWNYM .

0

Jeśli lubisz zabawę, możesz po prostu przejść do strony z listą swoich oddziałów (na przykład połączonych) i po prostu uruchomić w konsoli javascript:

document.querySelectorAll('tr td div a:first-child').forEach(function(item) { fetch('https://bitbucket.org/snippets/new?owner=<yourprofilenick>', {'credentials': 'same-origin'}).then((response) => {return response.text()}).then(function(string) { return /'csrfmiddlewaretoken' value='(.*)'/g.exec(string)[1] }).then(function(csrf) { if (!~item.innerText.indexOf('/')) return; 
 fetch(`https://bitbucket.org/!api/2.0/repositories/<your_organization_path>/refs/branches/${item.innerText}`, {headers: {"x-csrftoken": csrf}, credentials: "same-origin", method: 'DELETE'}).then(() => console.log(`${item.innerText} DELETED!`)) }) })

PRZED BIEGIEM

  • zamień na <yourprofilenick>swój nick BitBucket
  • zastąp <your_organization_path>ścieżką organizacyjną

JAK TO DZIAŁA

Najpierw potrzebujemy strony z tokenem CSRF w źródle strony, więc wybieram:

https://bitbucket.org/snippets/new?owner=<yourprofilenick>

Następnie dla każdej gałęzi (na liście gałęzi) pobiera token CSRF i usuwa tę gałąź.

STRZEC SIĘ

Pamiętaj, aby zapobiec wrażliwym gałęziom przed usunięciem w ustawieniach repozytorium.

NIE usunie głównej gałęzi.

DODATKOWE INFORMACJE

Musisz być zalogowany.

Usuwa tylko gałęzie widoczne na tej stronie (więc aby usunąć pozostałe gałęzie musisz przejść do następnej strony).


0
git push <repository> -d <branch>

aby uzyskać repository, wpisz git remote -vw wierszu poleceń

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.