Löschen Sie Zweige in Bitbucket

133

Ich habe viele Filialen in einem unserer Repositories erstellt. Diese Zweige dienen zum Testen, bevor sie zum Master gezogen werden. Jetzt sehe ich viele von ihnen auf der Liste und sie werden wir nie wieder verwenden. Wie lösche ich diese Zweige direkt zu Bitbucket?

Catherine
quelle

Antworten:

224

Wenn die Zweige nur lokal sind, können Sie -d verwenden, wenn der Zweig zusammengeführt wurde, wie z

git branch -d branch-name

Wenn der Zweig Code enthält, den Sie niemals zusammenführen möchten, verwenden Sie stattdessen -D .

Befindet sich der Zweig im Upstream-Repo (auf Bitbucket), können Sie die Remote-Referenz von entfernen

git push origin :branch-name

Wenn Sie sich auf der Bitbucket-Website befinden, können Sie Zweige entfernen, die Sie verschoben haben, indem Sie auf der Website unter Commits auf die Registerkarte Feature-Zweige gehen . Dort finden Sie ein Auslassungssymbol. Klicken Sie darauf und wählen Sie dann Zweig löschen . Stellen Sie nur sicher, dass Sie alle Änderungen dort ablegen möchten!

Geben Sie hier die Bildbeschreibung ein

Marcus
quelle
2
Wenn ich 'git branch -r' ausführe, stelle ich fest, dass BB den Zweig nicht vom Server löscht. Es wird nicht mehr in der GUI angezeigt, sondern auf dem Git-Server.
Jersey Bean
37

Zum Löschen von Zweigen aus Bitbucket

  1. Gehen Sie zur Übersicht (Ihr Repository> Zweige in der linken Seitenleiste)
  2. Klicken Sie auf die Anzahl der Zweige (die Liste der Zweige sollte angezeigt werden).
  3. Klicken Sie auf den Zweig, den Sie löschen möchten
  4. Klicken Sie oben rechts auf die 3 Punkte (neben der Schaltfläche Zusammenführen).
  5. Es besteht die Möglichkeit "Zweig löschen", wenn Sie Rechte haben.
Mital Pritmani
quelle
1
Wo ist "Überblick"? Wenn Sie Quelle meinen, sehe ich keine Option 'Zweig
löschen
7
Schritt 1 sollte lauten: "Gehen Sie zu Ihrem Repo und klicken Sie in der linken Seitenleiste auf" Zweige "."
Noumenon
19

Neben der Antwort von @Marcus können Sie jetzt auch einen Remote-Zweig löschen über:

git push [remote-name] --delete [branch-name] 
Ralf Rafael Frix
quelle
8

Gehen Sie in Bitbucket zu den Zweigen im Menü auf der linken Seite.

  1. Wählen Sie Ihren Zweig aus, den Sie löschen möchten.
  2. Gehen Sie zur Aktionsspalte, klicken Sie auf drei Punkte (...) und wählen Sie Löschen.
Prashant Sharma
quelle
7

Ich konnte die meisten meiner Zweige löschen, aber einer sah so aus und ich konnte ihn nicht löschen:

Geben Sie hier die Bildbeschreibung ein

Es stellte sich heraus, dass jemand Branch permissionsunter Settingsund von dort ungeprüft gesetzt hatte Allow deleting this branch. Hoffe das kann jemandem helfen.

Geben Sie hier die Bildbeschreibung ein

Update : Wo sich die Einstellungen aus der Frage im Kommentar befinden. Geben Sie das Repository ein, das Sie nicht bearbeiten möchten, um das Menü aufzurufen. Möglicherweise benötigen Sie Administratorrechte, um dies zu ändern.

Geben Sie hier die Bildbeschreibung ein

Ogglas
quelle
Wo findet man die "Einstellungen"? Ich muss den Hauptzweig oder alle darin enthaltenen Dateien löschen. Wie mache ich es?
3

Schritt 1: Melden Sie sich bei Bitbucket an

Schritt 2: Wählen Sie Ihr Repository in der Liste Repositorys aus. Geben Sie hier die Bildbeschreibung ein

Schritt 3: Wählen Sie Zweige im Menü auf der linken Seite aus. Geben Sie hier die Bildbeschreibung ein

Schritt 4: Cursorpunkt auf dem Zweig Klicken Sie auf drei Punkte (...). Wählen Sie Löschen (siehe unten). Geben Sie hier die Bildbeschreibung ein

Nanhe Kumar
quelle
2

Wenn Sie eine Pycharm-IDE für die Entwicklung verwenden und Git bereits hinzugefügt haben. Sie können den Remote-Zweig direkt aus Pycharm löschen. In der Symbolleiste VCS -> Git -> Zweige -> Zweig auswählen -> und Löschen . Es wird vom Remote-Git-Server gelöscht.

Jyoti Amage
quelle
2

Ich habe dieses kleine Skript geschrieben, als die Anzahl der Zweige in meinem Repo mehrere Hundert überschritten hat. Ich kannte die anderen Methoden (mit CLI) nicht und beschloss, sie mit Selen zu automatisieren. Es öffnet einfach die Bitbucket-Website, geht zu Zweige, scrollt die Seite bis zum Ende nach unten und klickt auf jedes Zweigoptionsmenü -> klickt auf die Schaltfläche Löschen -> klickt auf Ja. Es kann so eingestellt werden, dass die letzten N (100 - Standard) Zweige beibehalten und Zweige mit bestimmten Namen übersprungen werden (Master, Entwickeln - Standard, könnte mehr sein). Wenn dies zu Ihnen passt, können Sie es auf diese Weise versuchen.

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

Sie müssen lediglich das Repository klonen, die richtige Version von Chrome-webdriver herunterladen, einige Konstanten wie die URL in Ihr Repository eingeben und das Skript ausführen.

Der Code ist einfach zu verstehen. Wenn Sie Fragen haben, schreiben Sie Kommentare / erstellen Sie ein Problem.

Dan
quelle
1

Versuchen Sie diesen Befehl, um alle Zweige zu löschen, die mit dem developZweig zusammengeführt wurden.

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
Ehab Al-Hakawati
quelle
0

In Android Studio die Optionen in der rechten Ecke der IDE:

  • Andere lokale Niederlassung ändern / auschecken
  • Löschen Sie unerwünschte lokale Zweige (dh v0.0.1 ...)
  • Unerwünschte entfernte Zweige löschen (dh origin / v0.0.1 ...) - In diesem Schritt werden Zweige in BitBucket gelöscht, wenn das Löschen der Zweige nicht verhindert wird und es sich nicht um den Hauptzweig handelt .
Tim Long
quelle
0

Wenn Sie Spaß haben möchten, können Sie einfach zur Listenseite Ihrer Zweige gehen (z. B. zusammengeführt) und einfach in der Javascript-Konsole ausführen:

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

VOR DEM LAUFEN

  • Ersetzen Sie <yourprofilenick>durch Ihren BitBucket-Nick
  • durch <your_organization_path>Ihren Organisationspfad ersetzen

WIE ES FUNKTIONIERT

Zuerst brauchen wir eine Seite mit einem CSRF-Token in der Seitenquelle, also wähle ich:

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

Dann erhält es für jeden Zweig (in einer Zweigliste) ein CSRF-Token und löscht diesen Zweig.

IN ACHT NEHMEN

Denken Sie daran, sensible Zweige zu verhindern, bevor Sie sie in den Repo-Einstellungen löschen.

Der Hauptzweig wird NICHT gelöscht.

ZUSÄTZLICHE INFORMATION

Sie müssen angemeldet sein.

Es werden nur auf dieser Seite sichtbare Zweige gelöscht (um den Rest der Zweige zu löschen, müssen Sie zur nächsten Seite gehen).

türkus
quelle