/task01-grupo11

Repositório referente a task da DBC para reforço de conceitos do Git

Task 01 - Grupo 11

Git Rebase 🔀

• Funcionamento

→ O git rebase de uma branch no Git é uma maneira de mover toda uma branch para outro ponto da árvore, isto é, ele "pega" os commits de uma branch de origem e enfileira com os commits da branch de destino.

• Sintaxe

git rebase nome_da_branch

• Aplicação

→ O git rebase pode ser aplicado caso o desenvolvedor queira alterar o histórico de commits.
Por exemplo, digamos que temos uma branch que esteja divergente da branch master/main no ponto A:

/o-----o---o--o-----o--------- branch
--o-o--A--o---o---o---o----o--o-o-o--- master/main


Ao fazer o rebase, podemos movê-la com o comando git rebase master/main assim:

/o-----o---o--o-----o------ branch
--o-o--A--o---o---o---o----o--o-o-o master/main



Git Cherry Pick 🍒

Funcionamento

O git cherry-pick é um comando do Git que permite escolher diferentes commits para carregar no branch selecionado. Ou seja, é a ação de pegar um commit de uma branch e aplicar em outra.

git cherry-pick pode ser útil para desfazer mudanças, mas nem sempre é uma boa prática, pois pode causar commits duplicados. Esse comando não deve substituir o git merge e git rebase.

Sintaxe

Pega apenas um commit:
git cherry-pick "commitID"
Pega um intervalo de commits:
git cherry-pick 1..3 //Pega o commit 2 e 3 ignorando o 1
git cherry-pick 1^..3 //Pega todos os commits do 1-3
Pega todos os commits da branch:
git cherry-pick "nomeBranch"

Aplicação

O git cherry-pick pode ser aplicado em um repositório como o seguinte:

a - b - c - d (main)
e - f - g (feature)

Nesse caso se deseja usar o commit "f" na branch main. Primeiro é preciso estar na branch main:
git checkout main
Então, executamos o cherry-pick com o seguinte comando:
git cherry-pick f
Após a execução, o histórico do Git vai se parecer com:
a - b - c - d - f (main)
e - f - g (feature)
O commit f foi colocado na ramificação principal com sucesso.



Git Revert ↩️

Funcionamento

O comando git revert é usado para desfazer alterações ao histórico de commits do repositório. Outros comandos de "desfazer", como o git checkout e o git reset, movem os indicadores de referência do HEAD e do branch para commits especificados. O git revert também pega o commit específico; no entanto, o git revert não move os indicadores de referência para esse commit. A operação de reversão vai pegar o commit especificado, inverter as alterações dele e criar um "commit de reversão" novo. Os indicadores de referência são então atualizados para apontar para o commit de reversão novo, tornando o commit na ponta do branch.

Sintaxe

git revert "Commit Desejado"

Desfazer commits em um branch público

Aplicação

O comando git revert pode ser considerado um comando do tipo "desfazer"; no entanto, ele não é uma operação tradicional de desfazer. Em vez de remover o commit do histórico do projeto, ele descobre como inverter as alterações introduzidas pelo commit e anexa um commit novo com o conteúdo resultante. Assim, ele evita que o Git perca o histórico, o que é importante para a integridade do histórico de revisão e para uma colaboração confiável. O comando git revert pode ser considerado um comando do tipo "desfazer"; no entanto, ele não é uma operação tradicional de desfazer. Em vez de remover o commit do histórico do projeto, ele descobre como inverter as alterações introduzidas pelo commit e anexa um commit novo com o conteúdo resultante. Assim, ele evita que o Git perca o histórico, o que é importante para a integridade do histórico de revisão e para uma colaboração confiável.

O processo de reversão deve ser usado quando você quer aplicar o inverso do commit do histórico do projeto. Isso pode ser útil, por exemplo, se você estiver acompanhando um bug e descobrir que ele foi introduzido por um único commit. Em vez de ir até ela por conta própria, corrigir e confirmar um novo snapshot, você pode usar o git revert para fazer tudo isso na hora.



Git Squash ⏏️

Funcionamento

O squash irá servir para mudarmos o histórico de nossos commits e agrupá-los de uma nova maneira, ou seja, no final podemos ter feito 20 commits, mas aplicando o essa prática, poderemos reduzir o número para 10, por exemplo.

Sintaxe

git log --oneline Para ver lista de commits em uma linha

git rebase --interactive Para ver uma lista de interações

comands: s, squash <'commit'> Agora basta substituir os commits

Aplicação

A combinação por squash permite que você combine vários commits no histórico do seu branch em um único commit. Isso pode ajudar a manter a história do seu repositório mais legível e compreensível.


Referências 📖

  • https://git-scm.com/doc
  • https://www.atlassian.com/br/git/tutorials/cherry-pick#:~:text=O%20git%20cherry-pick%20%C3%A9,ser%20%C3%BAtil%20para%20desfazer%20altera%C3%A7%C3%B5es.
  • https://blog.geekhunter.com.br/git-cherry-pick-o-que-e-quando-usar/
  • https://coodesh.com/blog/candidates/aprenda-o-que-e-cherry-pick-do-git-e-como-aplicar-para-agilizar-seus-projetos/
  • https://blog.betrybe.com/git/git-rebase/
  • https://www.freecodecamp.org/portuguese/news/o-guia-definitivo-para-git-merge-e-git-rebase/
  • https://blog.betrybe.com/git/git-rebase/
  • https://www.atlassian.com/br/git/tutorials/undoing-changes/git-revert#:~:text=O%20comando%20git%20revert%20%C3%A9,do%20branch%20para%20commits%20especificados

  • Made with ❤️ by Luan Lima, Mariana Machado and Marcklen.