Excluir ramificações no Bitbucket


133

Eu criei muitas ramificações em um de nossos repositórios. Esses ramos são para teste antes de serem puxados para o mestre. Agora eu vejo muitos deles na lista e eles nunca mais serão usados. Como excluir esses ramos diretamente no Bitbucket?

Respostas:


224

Se as ramificações forem apenas locais, você poderá usar -d se a ramificação tiver sido mesclada, como

git branch -d branch-name

Se a ramificação contiver código que você nunca planeja mesclar, use -D .

Se a ramificação estiver no repositório upstream (no Bitbucket), você poderá remover a referência remota

git push origin :branch-name

Além disso, se você estiver no site da Bitbucket, poderá remover os ramos enviados por push, indo para a guia Ramos de recursos em Confirma no site. Lá você encontrará um ícone de reticências. Clique nele e escolha Excluir ramificação . Apenas certifique-se de que deseja descartar todas as alterações lá!

insira a descrição da imagem aqui


2
Se eu executar 'git branch -r', notarei que o BB não está excluindo a ramificação do servidor. Ele não aparece mais na GUI, mas é exibido no servidor git.
jersey bean

37

Para excluir ramificação do Bitbucket,

  1. Vá para Visão geral (Seu repositório> ramificações na barra lateral esquerda)
  2. Clique no número de ramificações (que deve mostrar a lista de ramificações)
  3. Clique no ramo que você deseja excluir
  4. No canto superior direito, clique nos 3 pontos (além do botão Mesclar).
  5. Existe a opção de "Excluir filial" se você tiver direitos.

1
Onde está a 'visão geral'? Se você quer dizer Fonte, não vejo nenhuma opção 'Excluir Filial' sob o ...
niico

7
O passo 1 deve ser "vá para o seu repositório e clique em 'ramos' na barra lateral esquerda".
Noumenon

19

Além da resposta dada por @Marcus, agora você também pode excluir uma ramificação remota via:

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

8

no Bitbucket, vá para as ramificações no menu do lado esquerdo.

  1. Selecione o seu ramo que você deseja excluir.
  2. Vá para a coluna de ação, clique em três pontos (...) e selecione excluir.

7

Eu poderia excluir a maioria dos meus ramos, mas um deles era assim e não era possível excluí-lo:

insira a descrição da imagem aqui

Aconteceu que alguém havia colocado Branch permissionsdebaixo Settingse de lá desmarcado Allow deleting this branch. Espero que isso possa ajudar alguém.

insira a descrição da imagem aqui

Atualização : onde as configurações estão localizadas da pergunta no comentário. Digite o repositório que você não deseja editar para obter o menu. Você pode precisar de privilégios de administrador para alterar isso.

insira a descrição da imagem aqui


Onde podemos encontrar as "Configurações"? Eu tenho que excluir o ramo principal ou todos os arquivos nele. Como eu faço isso?

3

Etapa 1: Faça login no Bitbucket

Etapa 2: Selecione seu repositório na lista Repositórios. insira a descrição da imagem aqui

Etapa 3: selecione ramificações no menu do lado esquerdo. insira a descrição da imagem aqui

Passo 4: Ponto do cursor na ramificação, clique em três pontos (...) Selecione Excluir (Veja na imagem abaixo) insira a descrição da imagem aqui


2

Se você estiver usando um IDE do pycharm para desenvolvimento e já tiver adicionado o Git. você pode excluir diretamente a ramificação remota do pycharm. Na barra de ferramentas VCS -> Git -> Ramos -> Selecione ramo -> e Excluir . Ele será excluído do servidor git remoto.


2

Eu escrevi esse pequeno script quando o número de ramificações em meu repositório excedeu várias centenas. Como eu não conhecia os outros métodos (com CLI), decidi automatizá-lo com selênio. Ele simplesmente abre o site da Bitbucket, acessa Ramos, rola a página até o final e clica em todos os menus de opções de ramificações -> clica no botão Excluir -> clica em Sim. Pode ser ajustado para manter os últimos N (100 - padrão) ramos e pular ramos com nomes específicos (mestre, desenvolver - padrão, pode ser mais). Se isso for adequado para você, você pode tentar dessa maneira.

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

Tudo que você precisa é clonar o repositório, baixar a versão adequada do Chrome-webdriver, inserir algumas constantes como URL no seu repositório e executar o script.

O código é simples o suficiente para entender. Se você tiver alguma dúvida, escreva comentários / crie um problema.


1

Experimente este comando, ele limpará todas as ramificações que foram mescladas à developramificação.

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

No Android Studio , as opções no canto direito do IDE:

  • Alterar / fazer checkout de outra filial local
  • Excluir ramificações locais indesejadas (ou seja, v0.0.1 ...)
  • Excluir ramificações remotas indesejadas (ou seja, origem / v0.0.1 ...) - esta etapa excluirá ramificações no BitBucket se não for impedido de excluir as ramificações e elas não forem a MAIN BRANCH .

0

Se você gosta de diversão, basta acessar a página de listagem de suas ramificações (por exemplo, mescladas) e apenas executar no console 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 EXECUTAR

  • substitua <yourprofilenick>pelo seu nick BitBucket
  • substitua <your_organization_path>pelo caminho da sua organização

COMO FUNCIONA

Primeiro, precisamos de uma página com um token CSRF na origem da página, então eu escolho:

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

Em seguida, para cada ramificação (em uma listagem de ramificação), ele obtém o token CSRF e exclui essa ramificação.

CUIDADO

Lembre-se de evitar ramificações sensíveis antes de excluir nas configurações de repo.

NÃO excluirá o ramo principal.

INFORMAÇÃO ADICIONAL

Você tem que estar logado.

Ele exclui apenas os ramos visíveis nessa página (para excluir o restante dos ramos, você precisa ir para a próxima página).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.