31 lines
1.1 KiB
Markdown
31 lines
1.1 KiB
Markdown
|
---
|
||
|
title: How to Squash Multiple Commits into One with Git
|
||
|
localeTitle: Como esmagar vários commits em um com o Git
|
||
|
---
|
||
|
Este é um recurso incrível de `rebase` que pode ser usado no modo `interactive` . Para esmagar os últimos _n_ commits em um, execute o seguinte comando:
|
||
|
```
|
||
|
git rebase -i HEAD~n
|
||
|
```
|
||
|
|
||
|
Isso abrirá um editor de texto com algo semelhante ao seguinte:
|
||
|
```
|
||
|
pick commit_1
|
||
|
pick commit_2
|
||
|
pick commit_3
|
||
|
...
|
||
|
pick commit_n
|
||
|
# Bunch of comments
|
||
|
```
|
||
|
|
||
|
Deixe o primeiro commit sozinho e mude o restante das `pick` s para `squash` . Salve e saia do editor.
|
||
|
|
||
|
Então, se você quiser esmagar os últimos três commits, primeiro você executará o `git rebase -i HEAD~3` e então você vai querer editar seus commits para parecer algo assim:
|
||
|
```
|
||
|
pick dd661ba Commit 1
|
||
|
squash 71f5fee Commit 2
|
||
|
squash f4b4bf1 Commit 3
|
||
|
```
|
||
|
|
||
|
Se você já empurrou para um controle remoto antes de esmagar seus commits, você terá que empurrar para o controle remoto novamente, com o sinalizador `-f` , caso contrário o git lançará um erro em você.
|
||
|
|
||
|
É altamente recomendável que você leia as informações no arquivo aberto, pois há muitas coisas que você pode fazer.
|