chcesz zgnieść wiele zatwierdzeń w githubie
Chcę zgnieść dwa ostatnie zatwierdzenia za pomocą komunikatów zatwierdzania „pierwszy” i „drugi”. Najpierw wyciągam mistrza, a następnie używam polecenia
git rebase -i HEAD~2 master
To pokazuje, że oba popełniają w edytorze takim jak ten:
pick first
pick second
Następnie zmieniam ten edytor na:
pick first
squash second
Po zapisaniu zmian otrzymałem tę wiadomość:
Successfully rebased and updated refs/heads/master.
Zmienił cokolwiek w zdalnym sterowniku. Aby zastosować te zmiany, używamgit push
polecenie i otrzymał następujący błąd:
To https://github.com/aneelatest/GITtest.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/test/GITtest.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Potem znowu uruchomięgit pull
polecenie i scalenie wzorca pochodzenia i wykonaj kolejne zatwierdzenie za pomocą tego komunikatu zatwierdzenia:
Merge branch 'master' of https://github.com/aneelatest/GITtest
Po tym, gdy uruchomię git push, zgniecie dwa commity do jednego z komunikatem „first”. Problem polega na tym, że w zdalnym sterowniku mam teraz cztery zatwierdzenia:
first
second
Merge branch 'master' of https://github.com/test/GITtest
first
Gdzie chcę tylko jedno zatwierdzenie, które jest zgniecionym z komunikatem zatwierdzenia „pierwszy”. Jakieś pomysły, gdzie robię błąd?