31 lines
1.7 KiB
Markdown
31 lines
1.7 KiB
Markdown
|
---
|
|||
|
title: How to Squash Multiple Commits into One with Git
|
|||
|
localeTitle: Как сквоить несколько коммитов в одном с Git
|
|||
|
---
|
|||
|
Это потрясающая функция `rebase` которая может использоваться в `interactive` режиме. Чтобы сквот последнего _n_ фиксируется в одном, выполните следующую команду:
|
|||
|
```
|
|||
|
git rebase -i HEAD~n
|
|||
|
```
|
|||
|
|
|||
|
Это откроет текстовый редактор с чем-то похожим на следующее:
|
|||
|
```
|
|||
|
pick commit_1
|
|||
|
pick commit_2
|
|||
|
pick commit_3
|
|||
|
...
|
|||
|
pick commit_n
|
|||
|
# Bunch of comments
|
|||
|
```
|
|||
|
|
|||
|
Оставьте первую фиксацию в одиночку и измените оставшуюся часть `pick` на `squash` . Сохраните и выйдите из редактора.
|
|||
|
|
|||
|
Поэтому, если вы хотите раздавить последние три коммита, сначала запустите `git rebase -i HEAD~3` а затем вы захотите отредактировать свои фиксации, чтобы выглядеть примерно так:
|
|||
|
```
|
|||
|
pick dd661ba Commit 1
|
|||
|
squash 71f5fee Commit 2
|
|||
|
squash f4b4bf1 Commit 3
|
|||
|
```
|
|||
|
|
|||
|
Если вы уже нажали на удаленный компьютер, прежде чем раздавить свои коммиты, вам придется снова нажать на пульт с флагом `-f` , иначе git вызовет у вас ошибку.
|
|||
|
|
|||
|
Настоятельно рекомендуется прочитать информацию в открывшемся файле, поскольку есть много вещей, которые вы можете сделать.
|