Páginas

13 de setembro de 2012

Git rebase é o cara


Esses dias precisei fazer uma tarefa que ao meu ver não é trivial (pois não domino o Git). O estado da minha branch master era tipo esse:

- Commit 17
- Commit 16
- Commit 15
- Commit 14
.
.
.
.
- Commit 2
- Commit 1

Normal. Então eu precisava gerar uma tag stable e mandar pra produção, mas na master alguns commits (3, 6 e 14) não podiam entrar em produção em hipótese alguma.

Minha primeira solução seria fazer cherry pick do que poderia entrar no stable a partir da master.
Mas fazer cherry pick do 2 ao 17, só por causa de 3 commits, cansa.

Aí encontrei uma alternativa no rebase. Dado que tenho uma branch temporária igualzinha a master, faço o rebase no modo interativo, e APAGO as linhas/commits que não podem entrar no rebase.

git rebase -i [commit 2]~1


Irá abrir um arquivo editável:


Apagar, por exemplo, as linhas 3, 6 e 14, e salvar o arquivo (Deletar uma linha irá apagar o commit pra sempre):


Daí é só bater e tag stable e ser feliz :-)

Um comentário:

Anônimo disse...

Hello. And Bye.