Por motivos preguiçosos, enviei muitos commits com mensagens padrão e agora ficou complicado, pois não sei o que mudei em cada commit.
Como edito apenas as mensagens de confirmações anteriores e (se possível) mantenho a árvore de confirmação?
Por motivos preguiçosos, enviei muitos commits com mensagens padrão e agora ficou complicado, pois não sei o que mudei em cada commit.
Como edito apenas as mensagens de confirmações anteriores e (se possível) mantenho a árvore de confirmação?
Respostas:
Para editar as mensagens de confirmação de uma série de confirmações, eu corro
git rebase -i firstsha
onde firstsha
é um identificador para o commit pai do primeiro commit que quero editar. (Você pode usar qualquer referência válida aqui, git rebase -i HEAD~4
mostrará os quatro últimos commits.)
No editor que é aberto, altere todas as entradas “pick” para “reformular” nos commits que você deseja modificar e feche o editor; você será solicitado a inserir mensagens de confirmação para todas as confirmações que você escolheu.
Note que este irá alterar a árvore de cometer, porque os hashes das commits vai mudar. Você precisará forçar a sua nova árvore ou empurrá-la para um novo ramo. Ele também estragará as mesclagens, portanto, evite editar confirmações de mesclagem.
Para editar rapidamente apenas a última confirmação, execute
git commit --amend
(mas tenha cuidado com qualquer coisa preparada para confirmar).
preserve-merges
)
O que você está procurando é git rebase
.
Se você deseja alterar apenas a git commit
mensagem anterior , basta usar o seguinte:
git commit --amend
E faça as alterações desejadas no commit anterior e salve as edições.
No entanto, se você precisar alterar confirmações antigas, precisará usar rebase
.
git rebase -i HEAD~N
onde N é igual ao número de confirmações que você deseja retornar, por exemplo, 2 ou 12 ou 6, etc. etc.
Aqui você deve obter um editor de texto com seus commit. Mude a opção de pick
para reword
para alterar a mensagem.
Depois de identificar todos os commits que você deseja alterar e alterar adequadamente suas opções, salve e feche o editor. Em seguida, faça as alterações em cada mensagem de confirmação. Quando estiver satisfeito, você pode executar:
git push --force
E você deve ter mantido seu histórico do git, embora com valores diferentes de hash, porque você fez as alterações necessárias que deseja. Aqui estão alguns links adicionais que você deve conferir:
7.6 Git Tools - Histórico de reconfiguração Ajuda do
GitHub - Alterando uma mensagem de confirmação
StackOverflow - Pergunta sobre a alteração de mensagens de confirmação antigas
commit --amend
", a menos que atrapalhe o processo de confirmação de alguma forma.
git rebase -i firstsha
que firstsha
o hash do commit pai seja o commit que eu gostaria de mudar a mensagem, depois no editor, mude pick
para reword
, enter
nova mensagem e emita git rebase --continue
e fazer git push --force
?
git rebase -i HEAD~N
N é o número de confirmações que você deseja enviar . Alterar todas as opções que deseja editar a mensagem de de cometer pick
a reword
, salve este arquivo, faça as alterações a cada um desses comprometer os arquivos e salvar aqueles. Quando estiver confiante de que está pronto, você só precisa git push --force [Name of git branch you are were working on]
. Você sempre pode voltar e fazer isso de novo ou em etapas.