Это дает хорошее объяснение раздавливания нескольких коммитов:
http://git-scm.com/book/en/Git-Branching-Rebasing
но это не работает для коммитов, которые уже были переданы. Как раздавить последние несколько коммитов в локальных и удаленных репозиториях?
РЕДАКТИРОВАТЬ: Когда я это сделаю git rebase -i origin/master~4 master
, оставлю первый как pick
, установить остальные три как squash
, а затем выйти (через cx cc в emacs), я получаю:
$ git rebase -i origin/master~4 master
# Not currently on any branch.
nothing to commit (working directory clean)
Could not apply 2f40e2c... Revert "issue 4427: bpf device permission change option added"
$ git rebase -i origin/master~4 master
Interactive rebase already started
где 2f40 - pick
коммит. И теперь ни один из 4 коммитов не появляется в git log
. Я ожидал, что мой редактор будет перезапущен, чтобы я мог ввести сообщение коммита. Что я делаю неправильно?
git push --force origin master