1
resposta

[Dúvida] Alterar a mensagem de um commit que não seja o último

Gostaria de saber como faria para alterar a mensagem de um commit que não seja o último, queria poder selecionar qual commit eu desejo fazer a alteração. Tem como? Com algumas pesquisas na internet descobri que o comando:

git rebase -i HEAD~n

faz isso mas não conseguir entender muito bem.

1 resposta

Sim, você está no caminho certo! O comando git rebase -i HEAD~n é o que você precisa para editar mensagens de commits anteriores. Aqui está uma explicação passo a passo de como fazer isso:

  1. Abra o terminal e navegue até o diretório do seu repositório Git.

  2. Execute o comando git rebase -i HEAD~n, onde n é o número de commits que você deseja voltar na história. Por exemplo, se quiser editar o terceiro commit anterior, use git rebase -i HEAD~3.

  3. O Git abrirá um arquivo no editor padrão, mostrando uma lista de commits que você selecionou no passo anterior. Cada linha corresponde a um commit e possui diferentes instruções. Deverá se parecer com algo assim:

    pick abc1234 Mensagem do commit 1
    pick def5678 Mensagem do commit 2
    pick ghi9101 Mensagem do commit 3
    
  4. Mude a palavra-chave pick para reword (ou simplesmente r) na frente do commit que você deseja editar. Por exemplo:

    pick abc1234 Mensagem do commit 1
    pick reword def5678 Mensagem do commit 2
    pick ghi9101 Mensagem do commit 3
    
  5. Salve e feche o arquivo.

  6. O Git iniciará um novo processo interativo para cada commit que você marcou como reword. Para cada commit, ele solicitará que você edite a mensagem do commit.

  7. O Git abrirá um novo editor com a mensagem do commit. Edite a mensagem conforme necessário, salve e feche o arquivo.

  8. Continue o processo de rebase executando git rebase --continue até que todos os commits tenham sido processados.

  9. Se ocorrerem conflitos durante o rebase, o Git irá pausar e pedir para resolvê-los. Use git status para verificar os arquivos em conflito, resolva os conflitos, adicione os arquivos ao índice (git add arquivo_conflito) e continue o rebase com git rebase --continue.

  10. Uma vez concluído o rebase, seus commits anteriores terão as mensagens alteradas.

Lembre-se de que editar commits passados pode causar problemas se você já compartilhou esses commits com outras pessoas. Se os commits foram enviados para um repositório remoto, você precisará forçar o push após o rebase usando git push --force, o que pode causar problemas para colaboradores que já têm cópias do repositório. Portanto, tenha cuidado ao usar essa abordagem em projetos colaborativos.