Nesta lição, faremos o seguinte:
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.
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.