To daje dobre wytłumaczenie zgniatania wielu zatwierdzeń:
http://git-scm.com/book/en/Git-Branching-Rebasing
ale nie działa dla zatwierdzeń, które zostały już wypchnięte. Jak zmiażdżyć kilka ostatnich zatwierdzeń w moich lokalnych i zdalnych repozytoriach?
EDYCJA: Kiedy to zrobię git rebase -i origin/master~4 master
, zachowaj pierwszą jako pick
, ustaw pozostałe trzy jako squash
, a następnie zakończ (przez cx cc w emacs), otrzymuję:
$ 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
gdzie 2f40 jest pick
zatwierdzeniem. A teraz żaden z 4 zatwierdzeń nie pojawia się w git log
. Spodziewałem się zrestartowania mojego edytora, aby móc wprowadzić komunikat zatwierdzenia. Co ja robię źle?
git push --force origin master