Como edito uma mensagem de commit incorreta com TortoiseGit?


Respostas:


160

Se o commit for o chefe do branch atual, isso é fácil.

  1. Menu de contexto -> Git Commit
  2. Marque a caixa de seleção "Alterar o último compromisso"
  3. Corrija sua mensagem de confirmação
  4. Está bem

Se o commit for o chefe de outro branch, mude para aquele branch primeiro.

  1. Menu de contexto -> TortoiseGit -> Switch / Checkout
  2. Escolha o nome da filial
  3. Está bem
  4. Siga as etapas 1-4 acima para alterar a mensagem de confirmação

Se o commit está no meio, sem qualquer fusão entre o head, você precisa reiniciar, corrigir e selecionar

  1. Menu de contexto -> TortoiseGit -> Log
  2. Selecione o commit -> menu de contexto -> Reset
  3. Hard Reset ( isso irá descartar todo o trabalho contido nos commits acima do commit selecionado, bem como quaisquer alterações não confirmadas no diretório de trabalho )
  4. Está bem
  5. Siga as etapas 1-4 acima para alterar a mensagem de confirmação
  6. Selecione do cabeçalho até um commit acima dele -> Menu de contexto -> Seleção automática
  7. Continuar

12
Eu realmente sinto falta da "Editar mensagem de log" do TortoiseSVN. Alguma chance de eles adicionarem esse recurso?
— Benoit Blanchon

3
Estou perdido no passo 6, o que você quer dizer com "Selecionar do cabeçalho para um commit acima dele" é uma opção no menu de contexto?
— Flethuseo

1
perdido na etapa 6 também. nenhuma opção de escolha certa em qualquer lugar, e eu não consigo ver o commit acima em nenhum caso (apenas diz mudanças de diretório de trabalho, das quais na verdade não há nenhuma)
— Robert Ivanc

13
Votar negativamente porque acho que as sugestões no caso em que o commit está no meio me fizeram descartar minhas alterações de código até aquele commit, que é várias semanas de trabalho.
— Samuel

8
AVISO: Use "Criar branch nesta versão" para definir um nome de branch temporário antes de redefinir para o commit que você deseja modificar. Caso contrário, você corre o risco de perder todos os commits acima deste ponto. (Se isso já aconteceu com você, git reflogirá ajudá-lo a recuperá-los).
— Steve Pitchers

19

Para o caso de quando o commit está no meio, eu recomendo fortemente não seguir as instruções fornecidas pela linquize, veja os comentários abaixo de sua resposta para o motivo.

  1. Você pode usar a linha de comando git com TortoiseGit e não causará nenhum problema: Posso usar ferramentas Git de linha de comando e TortoiseGit simultaneamente? .

  2. Este vídeo do youtube explica muito bem: http://youtu.be/4YjKY0u9Z6I . Basicamente, use git rebase -i e simplesmente "reformule" a mensagem de confirmação.

Update: Eu acredito que você pode recuperar os commits perdidos do hard reset sugerido por linquize, veja a resposta de Wayne aqui: Como posso reordenar / combinar commits usando rebase Git? .


7
Acordado. git está me levando muito tempo para aprender como usar, o SVN era tão simples. O conceito de git é simples, mas seu uso não é.
— Samuel

TortoiseGit também oferece rebase interativo, você não precisa usar a linha de comando para isso.
— Peter

13

Eu diria que o melhor método para alterar qualquer mensagem de confirmação é usar a force rebaseopção em tortoisegit.

Veja esta resposta em Como reordenar commits (rebase) com TortoiseGit . O mesmo método pode ser usado para editar mensagens de confirmação.

  • Quando você estiver na caixa de diálogo de rebase, clique com o botão direito do mouse no commit que deseja editar e selecione a Editopção. Você pode escolher editar vários commits.
  • Clique no Start Rebase botão.
  • O rebase irá pausar nos commits que você marcou Edit
  • Clique em Commit Message guia na parte inferior e edite a mensagem
  • Clique no Amendbotão para continuar
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.