3
respostas

Alterar a mensagem de um commit que não seja o último

Eu sei que existe esse comando: "git rebase -i HEAD~n", mas não tem um jeito de selecionar o commit que eu quero editar a mensagem pelo id dele?

Quando usei o "git rebase -i HEAD~n" consegui trocar a mensagem mas parece que voltou no tempo e algumas modificações que fiz após esse commit que modifiquei a mensagem sumiram, causando um conflito anterior que eu já tinha resolvido. Eu queria só trocar a mensagem e não voltar no tempo. Estou tendo que resolver cada conflito que já resolvi anteriormente!

3 respostas

Oi Luidi!

Se você deseja alterar apenas a mensagem de um commit específico sem reescrever o histórico recente, uma alternativa é usar o comando git rebase com o ID do commit. Aqui está uma maneira de fazer isso:

  1. Primeiro, encontre o ID do commit que você deseja modificar usando git log. Anote o hash completo ou parcial do commit.

  2. Em seguida, execute o comando:

    git rebase -i <commit_id>^
    

    Isso abrirá um editor de texto com uma lista de commits a partir do commit anterior ao que você deseja modificar.

  3. No editor, encontre o commit que você deseja alterar e substitua a palavra pick por reword (ou r). Isso permitirá que você edite apenas a mensagem desse commit.

  4. Salve e feche o editor. Outro editor será aberto para que você possa modificar a mensagem do commit.

  5. Após alterar a mensagem, salve e feche o editor novamente.

Este processo deve evitar a reescrita de commits posteriores ao que você está modificando, minimizando a chance de conflitos.

Espero ter ajudado e bons estudos!

Usei esse comando, mas depois que eu fiz a alteração da mensagem o git pede para continuar o rebase. E daí aparece os conflitos novamente que já foram resolvidos anteriormente.

Rode um git status para verificar se aidna existe algum conflito. Corrija o conflito nos arquivos e registre a correção com git add . e git commit -m "correcao de conflito"

Após isso, você pode continuar o rebase com o comando git rebase --continue