Когда вы сделали
git push -f origin old-state
, вы выдвинули на удаленный компьютер коммит old-state
, который не изменился с момента слияния old-state
в no-users
, а не наоборот.Вот почему принуждение здесь ничего не изменило.Ваш толчок не был отклонен , он просто отправлял ссылку, уже имеющуюся на пульте.
Только no-users
имеет обе части дерева на данный момент, поэтому ваш лучший снимок - это
git checkout old-state
# if you're not sure whether you're up-to-date on this branch,
# you might as well do it now before the merge
git pull
git merge no-users
и вы сможете толкать без силы:
git push origin old-state