Como eu excluo uma ramificação do Git local e remotamente?


14 Answers

A resposta de Mateus é ótima para remover ramificações remotas e também aprecio a explicação, mas para fazer uma distinção simples entre os dois comandos:

Para remover um ramo local da sua máquina:

git branch -d {the_local_branch} (use -D para forçar a exclusão da ramificação sem verificar o status da git branch -d {the_local_branch} )

Para remover uma ramificação remota do servidor:

git push origin --delete {the_remote_branch}

Referência: https://makandracards.com/makandra/621-git-delete-a-branch-local-or-remote

Question

Desejo excluir uma ramificação localmente e na bifurcação do meu projeto remoto no GitHub .

Tentativas Falha ao Excluir Ramificação Remota

$ git branch -d remotes/origin/bugfix
error: branch 'remotes/origin/bugfix' not found.

$ git branch -d origin/bugfix
error: branch 'origin/bugfix' not found.

$ git branch -rd origin/bugfix
Deleted remote branch origin/bugfix (was 2a14ef7).

$ git push
Everything up-to-date

$ git pull
From github.com:gituser/gitproject
* [new branch] bugfix -> origin/bugfix
Already up-to-date.

O que eu preciso fazer de forma diferente para excluir com sucesso a ramificação remotes/origin/bugfix localmente e no GitHub?




Mashup de todas as outras respostas. Requer Ruby 1.9.3+, testado apenas no OS X.

Chame esse arquivo de git-remove , torne-o executável e coloque-o em seu caminho. Então use, por exemplo, git remove temp .

#!/usr/bin/env ruby
require 'io/console'

if __FILE__ == $0
      branch_name = ARGV[0] if (ARGV[0])
      print "Press Y to force delete local and remote branch #{branch_name}..."
    response = STDIN.getch
    if ['Y', 'y', 'yes'].include?(response)
      puts "\nContinuing."
      `git branch -D #{branch_name}`
      `git branch -D -r origin/#{branch_name}`
      `git push origin --delete #{branch_name}` 
    else
      puts "\nQuitting."
    end
end



Fiquei farto de procurar essa resposta, então tomei uma abordagem semelhante à resposta que o crizCraig postou anteriormente.

Adicionado o seguinte ao meu perfil Bash:

git checkout some_other_branch
git push origin :branch_to_delete
git branch -d branch_to_delete

Então toda vez que eu termino com um branch (mesclado em master , por exemplo) eu corro o seguinte no meu terminal:

git fetch
git remote prune origin
git branch -r

... que então exclui my-branch-name da origin como também localmente.




git branch -D <name-of-branch>
git branch -D -r origin/<name-of-branch>
git push origin :<name-of-branch>



Outra abordagem é

git push --prune origin

AVISO: Isso excluirá todas as ramificações remotas que não existem localmente. Ou mais abrangente,

git push --mirror

Isso fará com que o repositório remoto pareça com a cópia local do repositório (cabeças locais, controles remotos e tags são espelhados no remoto).




Se você quiser excluir uma ramificação, primeiro check-out para a ramificação diferente da ramificação a ser excluída.

git checkout other_than_branch_to_be_deleted

Excluindo o ramo local:

git branch -D branch_to_be_deleted

Excluindo o ramo remoto:

git push origin --delete branch_to_be_deleted



Excluir ramificação remota

git push origin :<branchname>

Excluir ramificação local

git branch -D <branchname>

Exclua as etapas da filial local:

  1. checkout para outro ramo
  2. excluir filial local



Desde janeiro de 2013, o GitHub incluiu um botão Excluir ramificação ao lado de cada ramificação em sua página "Ramificações".

Postagem relevante no blog: criar e excluir ramificações




Você também pode fazer isso usando git remote prune origin :

$ git remote prune origin
Pruning origin
URL: git@example.com/yourrepo.git
 * [pruned] origin/some-branchs

Ele remove e exclui filiais de rastreamento remoto de uma listagem git branch -r .




Agora você pode fazer isso com o aplicativo GitHub Desktop .

Depois de lançar o aplicativo

  1. Clique no projeto que contém o ramo
  2. Mude para o ramo que você gostaria de excluir
  3. No menu "Filial", selecione "Anular a publicação ..." para que o ramo seja excluído dos servidores do GitHub.
  4. No menu "Filial", selecione "Excluir" branch_name "...", para que a ramificação seja excluída da sua máquina local (também conhecida como a máquina em que você está trabalhando)



Excluindo Filiais

Vamos supor que nosso trabalho no ramo "formulário de contato" esteja pronto e já o tenhamos integrado ao "mestre". Como não precisamos mais dele, podemos deletá-lo (localmente):

$ git branch -d contact-form

E para excluir o ramo remoto:

git push origin --delete contact-form



Para excluir sua filial local e remotamente

  • Checkout para master branch - git checkout master

  • Exclua sua ramificação remota - git push origin --delete <branch-name>

  • Exclua sua ramificação local - git branch --delete <branch-name>




git push origin --delete branchName

é mais fácil de lembrar do que

git push origin :branchName



git push origin :bugfix  # Deletes remote branch
git branch -d bugfix     # Must delete local branch manually

Se tiver certeza de que deseja excluí-lo, execute

git branch -D bugfix

Agora, para limpar as ramificações remotas excluídas, execute

git remote prune origin



Etapas para excluir um ramo:

para excluir o ramo remoto:

git push origin --delete <your_branch> 

para excluir o ramo local , você tem três maneiras:

1: git branch -D <branch_name> 

2: git branch --delete --force <branch_name>  //same as -D

3: git branch --delete  <branch_name>         //error on unmerge

Explique: OK, apenas explique o que está acontecendo aqui!

Simplesmente git push origin --delete para deletar sua filial remota APENAS , adicione o nome da ramificação no final e isso irá deletar e empurrá-la para o controle remoto ao mesmo tempo ...

Além disso, git branch -D , que simplesmente exclui a filial local SOMENTE ! ...

-D significa --delete --force que irá deletar o branch mesmo que ele não esteja mesclado (force delete), mas você também pode usar -d que significa --delete que --delete um erro respectivo do status de mesclagem do branch ...

Eu também criei a imagem abaixo para mostrar os passos:




Related