Como excluir um ramo git

Como excluir um ramo git
Criar galhos no Git é fácil. É considerado um dos melhores recursos do Git. No entanto, devido à presença de repositórios remotos e locais, a exclusão de galhos pode se tornar um pouco confuso.

Nesta lição, faremos o seguinte:

  • Crie um repositório remoto
  • Crie uma cópia local do repositório remoto
  • Crie duas filiais na cópia local
  • Empurre um ramo para o repositório remoto
  • Exclua filiais locais
  • Excluir ramificações remotas

A lição deve fornecer uma compreensão geral do processo de criação e exclusão do ramo, para que você tenha um bom comando sobre as etapas necessárias quando precisar excluir um ramo local ou remoto.

Vamos começar.

1. Criando um repositório remoto

Vamos criar uma pasta chamada projeto.git e inicialize para ser o repositório remoto:

Projeto $ mkdir.git
$ CD Project.git
$ git init -bare

Repositório Git vazio inicializado em/usuários/zak/_work/LearnGit/git_delete_branch/Project.git/

2. Criando uma cópia local do repositório remoto

Em um novo local, vamos criar uma cópia local chamada Project_local do repositório remoto usando o comando clone.

Nota: Se você estiver trabalhando com o Github ou Bitbucket, seguirá o mesmo processo para clonar o repositório. Nesse caso, você terá um link SSH em vez do caminho completo usado aqui.

$ git clone/usuários/zak/_work/learngit/git_delete_branch/projeto.Git Project_local
Clonando em 'Project_local'…
Aviso: você parece ter clonado um repositório vazio.
feito.

3. Criando galhos dentro da cópia local

Vamos primeiro adicionar um arquivo à cópia local e depois empurrá -la para o repositório remoto:

$ CD Project_local
$ touch readme.TXT
$ git add -a
$ git Commit -m "Inicializando o módulo"
[Mestre (compensação raiz) 81EB2A3] Inicializando o módulo
1 arquivo alterado, 0 inserções (+), 0 deleções (-)
Criar modo 100644 ReadMe.TXT
$ Git Push Origin Master
Contando objetos: 3, feito.
Objetos de escrita: 100% (3/3), 221 bytes | 0 bytes/s, feito.
Total 3 (delta 0), reutilizado 0 (delta 0)
Para/usuários/zak/_work/learngit/git_delete_branch/projeto.git
* [New Branch] Mestre -> Mestre

Nos comandos acima, criamos um arquivo chamado ReadMe.TXT, adicionou -o à cópia local, comprometeu -a à cópia local e depois empurrou as alterações no repositório remoto ou na filial mestre da origem.

Se você verificar as filiais, verá a filial mestre na cópia local:

Ramo $ git
* mestre

Se você verificar as filiais remotas, verá a filial principal lá também:

$ git ramo -r
Origem/Master

Dica: você pode usar a opção '-a' para ver todas as filiais em repositórios locais e remotos juntos.

$ git ramo -a
* mestre
Remotos/Origin/Master

Vamos criar dois ramos chamados B1 e B2 do ramo mestre:

$ Git Branch B1
$ Git Branch B2

Vamos verificar se as filiais foram criadas:

Ramo $ git
B1
B2
* mestre

Agora vamos fazer algumas modificações nos ramos:

$ git checkout b1
Mudou para a filial 'B1'
$ Touch Branch1.TXT
$ git add -a
$ git Commit -M "Modificação de ramo1"
[B1 A2F488E] Modificação do ramo1
1 arquivo alterado, 0 inserções (+), 0 deleções (-)
Criar modo 100644 Branch1.TXT
$ git checkout b2
Mudou para a filial 'B2'
$ Touch Branch2.TXT
$ git add -a
$ git Commit -m "Modificação de ramo2"
[B2 2ABB723] Modificação de Branch2
1 arquivo alterado, 0 inserções (+), 0 deleções (-)
Criar modo 100644 Branch2.TXT

Vamos verificar os status de filiais locais e remotos:

Ramo $ git
B1
* B2
mestre
$ git ramo -r
Origem/Master

Podemos ver localmente, temos três filiais mestre, b1 e b2. Mas temos apenas o ramo mestre no repositório remoto.

4. Empurrando galhos para o repositório remoto

Vamos empurrar a filial B1 para o repositório remoto:

$ git push Origin b1
Contando objetos: 2, feito.
Compressão delta usando até 4 threads.
Objetos de compactação: 100% (2/2), feito.
Objetos de escrita: 100% (2/2), 249 bytes | 0 bytes/s, feito.
Total 2 (delta 0), reutilizado 0 (delta 0)
Para/usuários/zakh/_work/learngit/git_delete_branch/projeto.git
* [New Branch] B1 -> B1

Você pode verificar os status da filial local e remota:

Ramo $ git
B1
* B2
mestre
$ git ramo -r
Origin/B1
Origem/Master

A partir do status de ramificação acima, podemos ver que a filial B1 está disponível remotamente também.

5. Excluindo ramos localmente

Você pode excluir filiais localmente com a opção -d ou -d.

git ramo -d

Vamos primeiro verificar o ramo mestre, para que possamos excluir os ramos B1 e B2.

$ git checkout mestre
Mudou para a filial 'Mestre'
Sua filial está atualizada com 'Origin/Master'.

Vamos tentar a opção -d primeiro para excluir a filial B1:

$ git ramo -d b1
Erro: o ramo 'B1' não está totalmente mesclado.
Se você tem certeza de que deseja excluí -lo, execute 'git ramo -d b1'.

O erro está lhe dizendo que você precisa mesclar as alterações do ramo B1. Esta é uma salvaguarda, então você não perde seu trabalho em galhos. Você pode usar a opção -d para forçar a exclusão da mesclagem. Mas, neste caso, vamos fundir as alterações de B1 e B2 em mestre e empurrá -lo para o repositório remoto.

$ git mescla B1
Atualizando 81Eb2a3… A2F488E
Avanço rápido
Branch1.txt | 0
1 arquivo alterado, 0 inserções (+), 0 deleções (-)
Criar modo 100644 Branch1.TXT
$ git mescla b2
Merge feita pela estratégia 'recursiva'.
Branch2.txt | 0
1 arquivo alterado, 0 inserções (+), 0 deleções (-)
Criar modo 100644 Branch2.TXT
$ Git Push Origin Master
Contando objetos: 4, feito.
Compressão delta usando até 4 threads.
Objetos de compactação: 100% (4/4), feito.
Objetos de escrita: 100% (4/4), 454 bytes | 0 bytes/s, feito.
Total 4 (Delta 1), reutilizado 0 (delta 0)
Para/usuários/zak/_work/learngit/git_delete_branch/projeto.git
81EB2A3… 34DB496 Mestre -> Mestre

Agora tente excluir os galhos novamente:

Ramo $ git
B1
B2
* mestre
$ git ramo -d b1
Filial B1 excluído (foi A2F488E).
$ git ramo -d b2
Filial B2 excluído (foi 2ABB723).
Ramo $ git
* mestre

Você excluiu com sucesso as ramificações B1 e B2 localmente.

6. Excluindo ramificações remotas

Quando você verifica as filiais remotas, você ainda vê B1 presente:

$ git ramo -r
Origin/B1
Origem/Master

Você pode usar o seguinte comando para excluir uma filial remota:

git push --excluir

Assim, você pode excluir a filial B1 remota com o seguinte:

$ Git Push Origin -Delete B1
Para/usuários/zakh_eecs/_work/learngit/git_delete_branch/projeto.git
- [Excluído] B1

Agora, se você verificar suas filiais remotas, não deve mais ver o B1:

$ git ramo -r
Origem/Master

Parabéns! Você excluiu com sucesso todos os ramos que você criou. Pratique fazer mais ramos e excluí -los para dominar o processo de exclusão do ramo Git.

Um estudo mais aprofundado:

  • https: // git-scm.com/book/en/v1/git rachading-what-a-rrange-está
  • https: // git-scm.com/book/en/v2/git rachading rachades-in-a-nutshell
  • https: // git-scm.com/book/en/v2/git ramnching-basic rchaming and merging