Eliminar sucursales en Bitbucket

133

He creado muchas sucursales en uno de nuestros repositorios. Esas ramas son para probar antes de que sean llevadas al maestro. Ahora veo muchos de ellos en la lista y nunca los volveremos a usar. ¿Cómo eliminar esas ramas directamente a Bitbucket?

catherine
fuente

Respuestas:

224

Si las ramas son solo locales, puede usar -d si la rama se ha fusionado, como

git branch -d branch-name

Si la rama contiene código que nunca planea fusionar, use -D en su lugar.

Si la rama está en el repositorio ascendente (en Bitbucket), puede eliminar la referencia remota

git push origin :branch-name

Además, si está en el sitio web de Bitbucket, puede eliminar las ramas que ha empujado yendo a la pestaña Ramas de funciones en Confirmar en el sitio. Allí encontrarás un icono de puntos suspensivos. Haga clic en eso, luego elija Eliminar rama . ¡Solo asegúrese de que quiere colocar todos los cambios allí!

ingrese la descripción de la imagen aquí

Marcus
fuente
2
Si ejecuto 'git branch -r', noto que BB no está eliminando la rama del servidor. Ya no aparece en la GUI, pero sí en el servidor git.
jersey bean
37

Para eliminar una rama de Bitbucket,

  1. Vaya a Descripción general (Su repositorio> ramas en la barra lateral izquierda)
  2. Haga clic en el número de ramas (que debería mostrarle la lista de ramas)
  3. Haga clic en la rama que desea eliminar.
  4. En la esquina superior derecha, haga clic en los 3 puntos (además del botón Combinar).
  5. Existe la opción de "Eliminar sucursal" si tiene derechos.
Mital Pritmani
fuente
1
¿Dónde está 'resumen'? Si te refieres a Fuente, no veo la opción 'Eliminar rama' en la ...
niico
77
El paso 1 debe ser "vaya a su repositorio y haga clic en 'ramas' en la barra lateral izquierda".
Noumenon
19

Además de la respuesta dada por @Marcus, ahora también puede eliminar una rama remota a través de:

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

en Bitbucket, vaya a las ramas en el menú del lado izquierdo.

  1. Seleccione la sucursal que desea eliminar.
  2. Vaya a la columna de acción, haga clic en tres puntos (...) y seleccione eliminar.
Prashant Sharma
fuente
7

Podría eliminar la mayoría de mis ramas pero una se veía así y no podía eliminarla:

ingrese la descripción de la imagen aquí

Resultó que alguien se había puesto Branch permissionsdebajo Settingsy desde allí sin control Allow deleting this branch. Espero que esto pueda ayudar a alguién.

ingrese la descripción de la imagen aquí

Actualización : la ubicación de la configuración de la pregunta en el comentario. Ingrese el repositorio que desea editar para obtener el menú. Es posible que necesite privilegios de administrador para cambiar esto.

ingrese la descripción de la imagen aquí

Ogglas
fuente
¿Dónde se puede encontrar la "Configuración"? Tengo que eliminar la rama principal o todos los archivos que contiene. ¿Cómo lo hago?
3

Paso 1: Inicie sesión en Bitbucket

Paso 2: Seleccione su repositorio en la lista de repositorios. ingrese la descripción de la imagen aquí

Paso 3: Seleccione ramas en el menú del lado izquierdo. ingrese la descripción de la imagen aquí

Paso 4: Punto del cursor en la rama, haga clic en tres puntos (...) Seleccione Eliminar (ver en la imagen siguiente) ingrese la descripción de la imagen aquí

Nanhe Kumar
fuente
2

Si está utilizando un IDE pycharm para el desarrollo y ya ha agregado Git con él. puede eliminar directamente la rama remota de pycharm. Desde la barra de herramientas VCS -> Git -> Ramas -> Seleccionar rama -> y Eliminar . Lo eliminará del servidor remoto de git.

Jyoti Amage
fuente
2

Escribí este pequeño script cuando el número de ramas en mi repositorio superó varios cientos. No conocía los otros métodos (con CLI), así que decidí automatizarlo con selenio. Simplemente abre el sitio web de Bitbucket, va a Ramas, se desplaza hacia abajo de la página hasta el final y hace clic en cada menú de opciones de rama -> hace clic en el botón Eliminar -> hace clic en Sí. Se puede ajustar para mantener las últimas N (100 - predeterminadas) ramas y omitir ramas con nombres específicos (maestro, desarrollo - predeterminado, podría ser más). Si esto le conviene, puede intentarlo de esa manera.

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

Todo lo que necesita es clonar el repositorio, descargar la versión adecuada de Chrome-webdriver, ingresar algunas constantes como URL en su repositorio y ejecutar el script.

El código es lo suficientemente simple como para entenderlo. Si tiene alguna pregunta, escriba comentarios / cree un Issue.

Dan
fuente
1

Pruebe este comando, purgará todas las ramas que se han fusionado con la developrama.

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
fuente
0

En Android Studio , las opciones en la esquina derecha del IDE:

  • Cambiar / pagar otra sucursal local
  • Eliminar sucursales locales no deseadas (es decir, v0.0.1 ...)
  • Eliminar ramas remotas no deseadas (es decir, origen / v0.0.1 ...): este paso eliminará ramas en BitBucket si no se impide que las ramas se eliminen y no sean la RAMA PRINCIPAL .
Tim Long
fuente
0

Si te gusta la diversión, puedes ir a la página de listado de tus sucursales (por ejemplo, fusionada) y simplemente ejecutarla en la consola de 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!`)) }) })

ANTES DE CORRER

  • reemplace <yourprofilenick>con su nick de BitBucket
  • reemplazar <your_organization_path>con la ruta de su organización

CÓMO FUNCIONA

Primero necesitamos una página con un token CSRF en el origen de la página, así que elijo:

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

Luego, para cada rama (en una lista de ramas) obtiene el token CSRF y elimina esa rama.

TENER CUIDADO

Recuerde evitar ramas sensibles antes de eliminar en la configuración del repositorio.

NO borrará la rama principal.

INFORMACIÓN ADICIONAL

Usted tiene que estar conectado.

Solo elimina las ramas visibles en esa página (por lo tanto, para eliminar el resto de ramas, debe ir a la página siguiente).

turkus
fuente