Nesta lição, faremos o seguinte:
- Crie um repositório remoto
- Crie uma cópia local do repositório remoto
- Crie duas ramificações na cópia local
- Envie um branch para o repositório remoto
- Excluir filiais locais
- Excluir ramos remotos
A lição deve lhe dar uma compreensão geral do processo de criação e exclusão de branch, para que você tenha um bom comando sobre as etapas necessárias quando precisar excluir um branch local ou remoto.
Vamos começar.
1. Criando um Repositório Remoto
Vamos criar uma pasta chamada projeto.git e inicializar para ser o repositório remoto:
projeto $ mkdir.idiotaprojeto $ cd.idiota
$ git init -bare
Repositório Git vazio inicializado em / Users / 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, você seguirá o mesmo processo para clonar o repositório. Nesse caso, você terá um link SSH em vez do caminho completo do arquivo usado aqui.
$ git clone / Users / zak / _work / LearnGIT / git_delete_branch / project.git project_localClonando em 'project_local'…
aviso: você parece ter clonado um repositório vazio.
feito.
3. Criação de ramos dentro da cópia local
Vamos primeiro adicionar um arquivo à cópia local e, em seguida, enviá-lo para o repositório remoto:
$ cd project_local$ touch ReadMe.TXT
$ git add -A
$ git commit -m "Inicializando o Módulo"
[master (root-commit) 81eb2a3] Inicializando o Módulo
1 arquivo alterado, 0 inserções (+), 0 exclusões (-)
modo de criação 100644 ReadMe.TXT
$ git push origin master
Contando objetos: 3, concluído.
Escrevendo objetos: 100% (3/3), 221 bytes | 0 bytes / s, concluído.
Total 3 (delta 0), reutilizado 0 (delta 0)
Para / Users / zak / _work / LearnGIT / git_delete_branch / project.idiota
* [novo ramo] mestre -> mestre
Nos comandos acima, criamos um arquivo chamado ReadMe.txt, adicionou-o à cópia local, confirmou-o na cópia local e, em seguida, enviou as alterações para o repositório remoto ou branch master de origem.
Se você verificar os branches, verá o branch master na cópia local:
$ git branch* mestre
Se você verificar os branches remotos, verá o branch master lá também:
$ git branch -rorigem / mestre
Dica: você pode usar a opção '-a' para ver todos os ramos em repositórios locais e remotos juntos.
$ git branch -a* mestre
controles remotos / origem / mestre
Vamos criar dois branches chamados b1 e b2 do branch master:
$ git branch b1$ git branch b2
Vamos verificar se os branches foram criados:
$ git branchb1
b2
* mestre
Agora vamos fazer algumas modificações nas ramificações:
$ git checkout b1Mudou para o branch 'b1'
$ touch branch1.TXT
$ git add -A
$ git commit -m "modificação Branch1"
[b1 a2f488e] Modificação de Branch1
1 arquivo alterado, 0 inserções (+), 0 exclusões (-)
modo de criação 100644 branch1.TXT
$ git checkout b2
Mudou para o branch 'b2'
$ touch branch2.TXT
$ git add -A
$ git commit -m "modificação Branch2"
[b2 2abb723] Modificação de Branch2
1 arquivo alterado, 0 inserções (+), 0 exclusões (-)
modo de criação 100644 branch2.TXT
Vamos verificar o status das filiais locais e remotas:
$ git branchb1
* b2
mestre
$ git branch -r
origem / mestre
Podemos ver localmente que temos três branches master, b1 e b2. Mas temos apenas o branch master no repositório remoto.
4. Empurrando Ramificações para Repositório Remoto
Vamos enviar o branch b1 para o repositório remoto:
$ git push origin b1Contando objetos: 2, concluído.
Compressão delta usando até 4 threads.
Comprimir objetos: 100% (2/2), concluído.
Escrevendo objetos: 100% (2/2), 249 bytes | 0 bytes / s, concluído.
Total 2 (delta 0), reutilizado 0 (delta 0)
Para / Users / zakh / _work / LearnGIT / git_delete_branch / project.idiota
* [novo ramo] b1 -> b1
Você pode verificar o status da filial local e remota:
$ git branchb1
* b2
mestre
$ git branch -r
origem / b1
origem / mestre
A partir dos status do branch acima, podemos ver que o branch b1 também está disponível remotamente.
5. Exclusão de ramos localmente
Você pode excluir ramos localmente com a opção -d ou -D.
git branch -dVamos primeiro verificar no branch master, para que possamos excluir os branches b1 e b2.
$ git checkout masterMudou para branch 'master'
Sua filial está atualizada com 'origin / master'.
Vamos tentar a opção -d primeiro para excluir o branch b1:
$ git branch -d b1erro: O branch 'b1' não está totalmente mesclado.
Se você tem certeza que deseja excluí-lo, execute 'git branch -D b1'.
O erro está dizendo que você deve mesclar as alterações do branch b1. Esta é uma salvaguarda, para que você não perca por engano seu trabalho nas filiais. Você pode usar a opção -D para forçar a exclusão da mesclagem. Mas, neste caso, vamos mesclar as alterações de b1 e b2 no mestre e enviá-lo para o repositório remoto.
$ git merge b1Atualizando 81eb2a3… a2f488e
Avanço rápido
branch1.txt | 0
1 arquivo alterado, 0 inserções (+), 0 exclusões (-)
modo de criação 100644 branch1.TXT
$ git merge b2
Mesclagem feita pela estratégia 'recursiva'.
branch2.txt | 0
1 arquivo alterado, 0 inserções (+), 0 exclusões (-)
modo de criação 100644 branch2.TXT
$ git push origin master
Contando objetos: 4, concluído.
Compressão delta usando até 4 threads.
Comprimir objetos: 100% (4/4), concluído.
Escrevendo objetos: 100% (4/4), 454 bytes | 0 bytes / s, concluído.
Total 4 (delta 1), reutilizado 0 (delta 0)
Para / Users / zak / _work / LearnGIT / git_delete_branch / project.idiota
81eb2a3… 34db496 master -> master
Agora tente deletar os branches novamente:
$ git branchb1
b2
* mestre
$ git branch -d b1
Branch b1 excluído (era a2f488e).
$ git branch -d b2
Ramificação b2 excluída (era 2abb723).
$ git branch
* mestre
Você excluiu com sucesso os ramos b1 e b2 localmente.
6. Excluindo Ramificações Remotas
Quando você verifica os branches remotos, ainda vê b1 presente:
$ git branch -rorigem / b1
origem / mestre
Você pode usar o seguinte comando para excluir um branch remoto:
git pushPortanto, você pode excluir o branch b1 remoto com o seguinte:
$ git push origin --delete b1Para / Users / zakh_eecs / _work / LearnGIT / git_delete_branch / project.idiota
- [excluído] b1
Agora, se você verificar seus branches remotos, não verá mais b1:
$ git branch -rorigem / mestre
Parabéns! Você excluiu com sucesso todos os ramos que você criou. Pratique fazer mais branches e excluí-los para dominar o processo de exclusão do branch Git.
Um estudo mais aprofundado:
- https: // git-scm.com / book / en / v1 / Git-Branching-What-a-Branch-Is
- https: // git-scm.com / book / en / v2 / Git-Branching-Branches-in-a-Nutshell
- https: // git-scm.com / book / en / v2 / Git-Branching-Basic-Branching-and-Merging