-
-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Criação da tarefa 3 #103
base: main
Are you sure you want to change the base?
Criação da tarefa 3 #103
Conversation
O_JOGO_DO_TIGRINHO_ME_DEU.md modified
Link para tarefa 3 adicionado à tarefa 2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Valeu demais pela contribuição @Joaolpridolficarvalho!
Antes de eu corrigir as mudanças da Tarefa 3 em si, primeiro a gente precisa remover dois
commits que estão duplicados no seu PR. Depois que resolver isso, aí eu reviso a mudança da
Tarefa 3, pode ser?
Problema
Os commits 32609bf
e 3c01fc0
não deveriam constar no PR.
Descrição detalhada
Se você olhar na aba de commits do seu pr,
verá 3 commits listados, como mostra a imagem:
Perceba que os dois commits marcados em vermelho (32609bf
e 3c01fc0
) já tiveram o seus
respectivos conteúdos mesclados no branch main.
Eles foram mesclados utilizando o método "squash and merge".
Esse método combina vários commits em um novo commit. Portanto se você for analisar o
histórico de commit do branch main,
verá que terá apenas um commit referente a essas mudanças (o commit 9e66308
):
Se você clicar no commit, ou acessar diretamente pelo
link,
verá a seguinte informação:
Em resumo, o quê o "squash and merge" fez foi mesclar os commits 32609bf
e 3c01fc0
em um novo
commit a9e66308
.
Como os conteúdos desses dois commits do PR já estão com seus conteúdos mesclados no main, eles
não deveriam estar neste PR, correto? O PR deveria conter apenas o commit 4010140
.
Por que isso aconteceu?
Aqui está o que provavelmente aconteceu:
-
Os commits
32609bf
e3c01fc0
foram inicialmente feitos no branchJoaolpridolficarvalho:main
. -
Você abriu o primeiro PR (Joaolpridolficarvalho #92) de
Joaolpridolficarvalho:main
paracumbucadev:main
. -
Eu fiz o "squash and merge" do PR Joaolpridolficarvalho #92. Isso atualizou o
cumbucadev:main
com um novo commit
de squash, o9e66308
.
Neste exato momento, o seu branchJoaolpridolficarvalho:main
continua igual como estava antes.
Ele continua contendo os dois commits ao invés de um só do squash. Isso porque, quando eu faço
o merge do PR, eu altero somento ocumbucadev:main
e não oJoaolpridolficarvalho:main
-
Você criou o novo branch
Joaolpridolficarvalho:97
a partir doJoaolpridolficarvalho:main
. -
Você criou o commit com a tarefa 3 no branch
Joaolpridolficarvalho:97
e criou o PR.
A razão do que aconteceu é que o branch Joaolpridolficarvalho:97
foi baseado no branch
Joaolpridolficarvalho:main
e o branch Joaolpridolficarvalho:main
não estava atualizado com
o branch cumbucadev:main
.
Como evitar isso no futuro:
Esse deveria ter sido o fluxo seguido:
-
Fazer os commits
32609bf
e3c01fc0
no branchJoaolpridolficarvalho:main
(melhor ainda se fosse noJoaolpridolficarvalho:92
, mas vamos usar o main aqui para manter
o exemplo) -
Abrir o primeiro PR (Joaolpridolficarvalho #92) de
Joaolpridolficarvalho:main
paracumbucadev:main
. -
Após o merge do seu PR, atualizar o seu main remoto
Joaolpridolficarvalho:main
com o
cumbucadev:main
. Nessa doc tem as intruções detalhadas de como fazer isso,
mas é basicamente clicar nesse botão: -
Agora, atualizar o seu main local com as atulizações do
Joaolpridolficarvalho:main
:
git checkout main
git pull
- Criar o novo branch
Joaolpridolficarvalho:97
a partir doJoaolpridolficarvalho:main
já atualizado:
git checkout main
git checkout -b 97
- Criar o commit com a tarefa 3 no branch
Joaolpridolficarvalho:97
e criar o PR.
Como resolver?
Agora que entendemos por que isso aconteceu, vamos resolver o problema! O objetivo é garantir que o
seu PR não tenha os commits duplicados, que já foram mesclados no main
.
Aqui está o passo a passo para corrigir isso:
-
Atualizar o seu branch remoto
Joaolpridolficarvalho:main
com ocumbucadev:main
:
syncing-a-fork -
Atualizar o seu main local com as atulizações do
Joaolpridolficarvalho:main
:
git checkout main
git pull
- Criar um novo branch 97-2:
git checkout -b 97-2
- Fazer cherry-pick do commit correto:
Agora, você pode pegar o commit correto (4010140
) e aplicá-lo diretamente no seu novo branch 97-2.
Isso irá garantir que apenas o commit desejado seja incluído no novo branch.
git cherry-pick 4010140
Esse comando irá pegar o commit 4010140
e aplicá-lo ao seu branch 97-2.
- Criar um novo PR a partir da branch 97-2
Agora, com o commit correto no branch 97-2, crie um novo PR para que ele seja revisado e mesclado no repositório.
git push origin 97-2
- Feche esse PR, comentando que você criou um novo PR e coloque o link para o novo PR:
Espero que tenha dado para entender, mas qualquer coisa é só dar um toque! Nesse começo é bem
natural se enrolar um pouco com o git, mas depois que pega o jeito só vai.
Tarefa 3 adicionada
Link para tarefa 3 adicionado à tarefa 2
closes #97