3 cenários que acontecem no Git somente em ambientes corporativo! 📒
O Git & GitHub são ferramentas essenciais para qualquer papel na carreira de desenvolvimento de software. Seja você desenvolvedor mobile, front-end, back-end ou em outra área, entender como utilizá-las é fundamental. Aqui, vou compartilhar o que utilizo e aprendi no dia a dia como desenvolvedor no LuizaLabs. Garanto que, com este guia, você, como júnior ou estagiário, vai dar um passo à frente no mercado.
Este artigo cobre três cenários principais que já enfrentei como desenvolvedor e gostaria de ter aprendido antes:
- Atualizar sua branch com histórico linear de commits (sem precisar fazer merge)
- Acessar uma branch criada por outro desenvolvedor
- Fazer Squash Commits para organizar commits antes do merge
Atualizar Branch (com histório linear)
Imagine que você está trabalhando e precisa da branch de outro desenvolvedor para configurar seu ambiente local. Você acessa a branch, encontra um bug e o reporta. Algum tempo depois, o desenvolvedor diz: "Atualiza sua branch, corrigi o problema". Como você faz isso? É bem simples:
git pull origin <nome-da-branch>
O que este comando faz?
-
O comando
git pull
serve para "trazer" as alterações do repositório remoto para o seu repositório local. -
O argumento
origin
é o repositório remoto (geralmente é o padrão). -
<nome-da-branch>
é o nome da branch que você quer atualizar.
Como Manter um Histórico Linear de Commits?
Usar o comando acima pode criar commits de merge, poluindo o histórico. Para evitar isso, use o argumento --rebase
, ficando assim:
git pull origin <nome-da-branch> --rebase
Por quê o --rebase?
O git pull
é uma abstração que combina dois comandos:
-
git fetch
: Atualiza as alterações do repositório remoto para o local. -
git merge <nome-da-branch>
: Faz o merge das alterações na branch atual.
O --rebase
substitui o git merge <nome-da-branch>
por git rebase origin/<nome-da-branch>
, reaplicando seus commits locais no topo das alterações mais recentes da branch remota. Isso evita a criação de commits extras de merge.
Acessar Branch de Outro Desenvolvedor
Imagine que um colega pede para você testar funcionalidades em uma branch que ele criou. Como você faz isso? Siga os passos abaixo:
-
Certifique-se de estar na branch principal (main/master):
git checkout main
-
Atualize as referências remotas:
git fetch
-
Liste as branches remotas:
git branch -r
Procure a branch do seu colega, por exemplo: origin/feat-add-new-button.
-
Crie uma branch local baseada na remota:
git checkout -b <nome-da-branch-local> origin/<nome-da-branch-remota>
Exemplo:
git checkout -b feat-add-new-button origin/feat-add-new-button
-
Atualize a branch com as últimas alterações:
git pull origin <nome-da-branch-local> --rebase
Squash Commits
Antes de mergear sua branch com a principal (main/master), seu time pode solicitar que você organize seus commits usando Squash Commits.
O que é isso? Squash Commits é o processo de combinar vários commits em um único. Isso deixa o histórico do repositório mais limpo e organizado.
Quando usar Squash Commits?
-
Quando você fez muitos commits pequenos, como:
-
"Corrigi bug no botão"
-
"Ajustei alinhamento do botão"
-
"Adicionei funcionalidade ao botão"
-
-
Esses commits podem ser combinados em algo mais claro, como:
- "Adicionado botão funcional"
Como fazer Squash Commits?
-
Inicie o rebase interativo:
git rebase -i HEAD~n
Substitua
n
pelo número de commits que você quer combinar. Por exemplo caso seja os últimos 3 commits que você quer mesclar, ficaria:git rebase -i HEAD~3
. Usegit log
para ver seus últimos commits.⚠️ Atenção, nunca faça rebase em commits que não sejam seus. Pode causar problemas de integridade no histórico compartilhado do Git e dificultar o trabalho em equipe
-
No editor, altere os commits que você deseja combinar de pick para
f
.Exemplo:
pick 1234567 Adicionei botão f 89abcde Corrigi bug no botão f 6543210 Ajustei alinhamento do botão
-
Edite a mensagem final do commit e salve.
-
Finalize o rebase:
git push --force
⚡CUIDADO! Sempre que utilizar o argumento
--force
, você pode sobrescrever commits de outros desenvolvedores que estão trabalhando na mesma branch que você!
No fim os commits da hash 89abcde
, 6543210
e 1234567
irão ser mesclados. Sempre deixe o pick
do último commit do topo para não haver problemas.
⚠️ Sempre combine apenas commits relacionados à mesma tarefa. Isso evita confusão no histórico do Git.