Так и не понимаю я его логику. Хорошо ещё, что можно на кошках только тренироваться.
В общем, был у меня на GitHub'е репо с merge от 6-го июня:
* commit 880bf16813a1c74d9e130b8506924c9e6e35c3a5
|\ Merge: 146eb59 d713363
| | Author: Balancer <balancer@balancer.ru>
| | Date: Mon Jul 6 13:00:07 2015 +0300
| |
| | Merge branch 'master' of git://github.com/Balancer/bors-3rd-jquery-wysibb
| |
| | Conflicts:
| | composer.json
| |
| * commit d713363404ec562d83aa0cd2279284d9af17163e
| | Author: Balancer <balancer@balancer.ru>
| | Date: Sat Jul 4 20:05:05 2015 +0300
| |
| | and libra
...
...
Есть локальный репо. Х.з. уже что там за изменения, но небольшие. Bare. Пытаюсь синхронизировать с GitHub.
git fetch — всё прекрасно.
git push не лезет никак:
[rejected] master -> master (non-fast-forward)
Смотрю по git log --graph --all
— всё совпадает с тем, что на GitHub. Ну, полагаю, что HEAD не на ту ревизию показывает. Логику git понять так и не могу, поэтому гуглю. Естественно, многочисленные советы с «--force», наученный предыдущими опытами, пропускаю :)
Во, нахожу ещё один совет, как сменить HEAD. git push origin +master
. Вроде, никаких --force, не должно быть ничего страшного? Выполняю. Ошибок нет. Всё коммитится. Смотрю в log --graph --all. Хм. Куда-то ромб с merge пропал. Лезу на github... Опаньки, было 22 коммита, показывается 20. И, да, коммиты от 6-го исчезли o_O
Ну, вот, вопрос. Как надо было поступить и как теперь вернуть последние изменения?