Junior
Como combinar vários commits em um só usando Git?
sobes.tech IA
Resposta da IA
Para combinar vários commits em um usando Git, utilize o comando git rebase -i <commit-ish>.
- Identifique o commit até o qual deseja combinar. Pode ser um hash de commit, um branch ou uma tag.
- Execute o comando
git rebase -i <commit-ish>. Por exemplo, para combinar os últimos 3 commits:git rebase -i HEAD~3 - Uma editor de texto será aberto com a lista de commits. O primeiro commit na lista (superior) deve ter a palavra
pick. Os demais commits que deseja combinar com o primeiro, devem ser alterados depickparasquashous.pick abcd123 Commit inicial squash efgh456 Parte 1 da funcionalidade A squash ijkl789 Parte 2 da funcionalidade A ... - Salve e feche o editor.
- Um novo editor será aberto para criar a mensagem do commit. Combine ou edite as mensagens dos commits conforme sua preferência para criar uma mensagem coerente para o novo commit combinado.
// Mensagem para o novo commit combinado // Isto é uma combinação de 3 commits. // Commit inicial // Parte 1 da funcionalidade A // Parte 2 da funcionalidade A - Salve e feche o editor. O Git realizará a combinação dos commits.
Se o branch em que você está já foi enviado para um repositório remoto, será necessário fazer um push forçado com a flag -f ou --force-with-lease.
git push origin <seu_branch> -f
Isso é necessário porque o histórico de commits foi alterado. O push forçado pode ser perigoso se outros desenvolvedores já estiverem trabalhando nesse branch. Sempre verifique se é seguro fazer um push forçado.
Alternativamente, você pode usar as flags --fixup e --autosquash ao fazer commits, e depois executar git rebase -i --autosquash <commit-ish> para uma fusão automática.