Bitbucket'ta dalları sil


136

Depolarımızdan birinde çok sayıda şube oluşturdum. Bu dallar ustaya çekilmeden önce test edilmek üzere. Şimdi listede birçoğunu görüyorum ve bir daha asla kullanmayacağız. Bu dalları doğrudan Bitbucket'a nasıl silebilirim?

Yanıtlar:


226

Şubeler yalnızca yerelse , şube birleştirildiyse -d kullanabilirsiniz , örneğin

git branch -d branch-name

Dal, birleştirmeyi asla planlamadığınız bir kod içeriyorsa, bunun yerine -D'yi kullanın.

Şube yukarı akış deposundaysa (Bitbucket'ta) uzak referansı şu şekilde kaldırabilirsiniz:

git push origin :branch-name

Eğer Bitbucket web sitesinde eğer Ayrıca, size giderek aktardıktan dalları kaldırabilirsiniz Özellik dalları altında sekmesi taahhüt sitesinde. Orada bir üç nokta simgesi bulacaksınız. Bunu tıklayın, ardından Şubeyi sil'i seçin . Sadece tüm değişiklikleri oraya bırakmak istediğinizden emin olun!

görüntü açıklamasını buraya girin


2
'Git branch -r' komutunu çalıştırırsam, BB'nin şubeyi sunucudan silmediğini fark ediyorum. Artık GUI'de görünmüyor, ancak git sunucusunda gösteriliyor.
jersey bean

37

Şubeyi Bitbucket'tan silmek için,

  1. Genel Bakış'a gidin (Deponuz> sol kenar çubuğunda dallar )
  2. Şube sayısını tıklayın (size şube listesini göstermelidir)
  3. Silmek istediğiniz şubeye tıklayın
  4. Sağ üst köşede, 3 noktayı tıklayın (Birleştir düğmesinin yanında).
  5. Haklarınız varsa "Şubeyi Sil" seçeneği vardır.

1
'Genel bakış' nerede? Kaynağı kastediyorsanız, ... altında 'Şubeyi Sil' seçeneğini
görmüyorum

7
Adım 1, "deponuza gidin ve sol kenar çubuğundaki" dallar "ı tıklayın."
Noumenon

19

@Marcus tarafından verilen cevaba ek olarak, artık uzak bir şubeyi şu yolla silebilirsiniz:

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

8

içinde Bitbucket sol taraftaki menüde dallar gidin.

  1. Silmek istediğiniz şubenizi seçin.
  2. Eylem sütununa gidin, üç noktaya (...) tıklayın ve sil'i seçin.

7

Şubelerimin çoğunu silebilirdim ama biri şöyle görünüyordu ve silemedim:

görüntü açıklamasını buraya girin

Çıktı birisi batmıştı Branch permissionsaltında Settingsve orada kontrolsüz gelen Allow deleting this branch. Umarım bu birine yardımcı olabilir.

görüntü açıklamasını buraya girin

Güncelleme : Ayarların yorumda sorulduğu yer. Menüyü almak için düzenlemek istemediğiniz depoyu girin. Bunu değiştirmek için yönetici ayrıcalıklarına ihtiyacınız olabilir.

görüntü açıklamasını buraya girin


"Ayarlar" nerede bulunur? Ana dalı veya içindeki tüm dosyaları silmem gerekiyor. Nasıl yaparım?

3

Adım 1: Bitbucket'ta Giriş Yapın

Adım 2: Depolar listesinden Deponuzu seçin. görüntü açıklamasını buraya girin

Adım 3: Sol taraftaki menüden dalları seçin. görüntü açıklamasını buraya girin

Adım 4: Daldaki imleç noktası üç noktaya tıklayın (...) Sil'i seçin (Aşağıdaki Resme Bakın) görüntü açıklamasını buraya girin


2

Geliştirme için bir pycharm IDE kullanıyorsanız ve bununla Git'i zaten eklediyseniz. doğrudan pycharm'dan uzak dalı silebilirsiniz. Araç çubuğundan VCS -> Git -> Dallar -> Dal seç -> ve Sil . Uzak git sunucusundan silecektir.


2

Bu küçük senaryoyu repomdaki şube sayısı birkaç yüzü aştığında yazdım. Diğer yöntemleri (CLI ile) bilmiyordum, bu yüzden selenyum ile otomatikleştirmeye karar verdim. Basitçe Bitbucket web sitesini açar, Dallar'a gider, sayfayı sonuna kadar kaydırır ve her dal seçenekleri menüsünü tıklar -> Sil düğmesini tıklar -> Evet'i tıklar. Son N (100 - varsayılan) dalı tutmak ve belirli adlara sahip dalları atlamak için ayarlanabilir (ana, geliştirme - varsayılan, daha fazla olabilir). Bu size uyuyorsa, o şekilde deneyebilirsiniz.

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

İhtiyacınız olan tek şey depoyu klonlamak, Chrome-webdriver'ın uygun sürümünü indirmek, deponuza URL gibi birkaç sabit girmek ve komut dosyasını çalıştırmaktır.

Kod anlaşılması için yeterince basit. Herhangi bir sorunuz varsa, yorum yazın / bir Sorun oluşturun.


1

Bu komutu deneyin, dala birleştirilen tüm dalları temizleyecektir develop.

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

In Android Studio IDE sağ köşesine aşağı seçenekleri:

  • Diğer yerel şubeyi değiştir / kontrol et
  • İstenmeyen yerel şubeleri silin (yani v0.0.1 ...)
  • İstenmeyen uzak dalları silin (yani kaynak / v0.0.1 ...) - bu adım, dalların silinmesi engellenmiyorsa ve bunlar ANA ŞUBE değillerse BitBucket'teki dalları silecektir .

0

Eğlenceyi seviyorsanız, şubelerinizin listeleme sayfasına gidebilir (örneğin birleştirilmiş) ve sadece javascript konsolunda çalıştırabilirsiniz:

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!`)) }) })

KOŞMADAN ÖNCE

  • <yourprofilenick>BitBucket nickinizle değiştirin
  • <your_organization_path>organizasyon yolunuzla değiştirin

NASIL ÇALIŞIR

Öncelikle, sayfa kaynağında CSRF belirteci bulunan bir sayfaya ihtiyacımız var, bu yüzden şunu seçiyorum:

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

Daha sonra her dal için (bir dal listesinde) CSRF belirteci alır ve o dalı siler.

DİKKAT

Depo ayarlarında silmeden önce hassas dalları önlemeyi unutmayın.

Ana dalı SİLMEZ.

İLAVE BİLGİ

Giriş yapmalısınız.

Yalnızca o sayfada görünen dalları siler (bu nedenle kalan dalları silmek için sonraki sayfaya gitmeniz gerekir).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.