Como corrigir o compromisso n-ésimo antes?

2

Eu quero mudar uma palavra em commit HEAD ^ 2, como fazer isso?

EDITAR Esses commits ainda não foram enviados. Portanto, ele não é mostrado como pick xxxxxx no editor interativo.

    
por Xiè Jìléi 05.01.2011 / 10:04

2 respostas

2
git rebase -i <name your branch's parent, probably "master">

O Vim abrirá e você verá algo assim:

pick ba95551 Commit_message_1
pick 3e357b5 Commit_message_for_commit_I_want_to_edit
pick 5eee414 Commit_message_3
pick c9a1f38 Commit_message_4
  1. Posicione o cursor (com o mouse / as teclas de seta / ou os comandos "h" "j" "k" "l) no início da linha para o commit que você deseja editar.
  2. Pressione "Inserir" para entrar no modo de edição
  3. Digite "e" para "editar"
  4. Exclua a palavra "pick" ("esc" "d" "w" para "delete word" ou apenas pressione delete algumas vezes)

Você deve ver algo assim:

pick ba95551 Commit_message_1
e 3e357b5 Commit_message_for_commit_I_want_to_edit
pick 5eee414 Commit_message_3
pick c9a1f38 Commit_message_4

Pressione "Esc" para entrar no modo de comando. Digite ": wq" para escrever, saia. Pressione Enter.

O Git agora reaplicará seus commits até esse ponto. Então você está livre para "editar commit anterior" como você faria normalmente:

git commit --amend

ou

git gui

O rebase interativo também permite que você reordene e remova os commits de sua escolha. Você deve estar ciente de que reescrever a história como essa afetará aqueles que a abandonaram. Veja Recuperando-se do rebase upstream .

    
por 05.01.2011 / 10:14
0

Se você quiser literalmente editar HEAD^<n> , a maneira de fazer isso seria executar:

git rebase -i HEAD^<n+1>'

O primeiro commit na lista deve ser HEAD^n ; altere seu comando de pick para edit .

Quando ele retornar a um prompt, faça suas alterações, confirme-as e execute git rebase --continue .

Nota: Se você quiser alterar apenas o conteúdo dessa confirmação específica, poderá / precisar edit da próxima confirmação ( HEAD^<n-1> ), para cancelar a aplicação de quaisquer alterações feitas. Talvez a maneira mais fácil de fazer isso seja marcar o commit primeiro e, em seguida, consertar a versão criada fazendo git checkout <tag_name> . da raiz do repositório.

    
por 12.05.2016 / 12:19

Tags