Хотя этот вопрос немного устарел ... Я был в похожей ситуации, и мой ответ здесь помог мне исправить похожую проблему, с которой я столкнулся
Первая попытка с push -f
или принудительной опцией
Если это не сработало, возможно, что (как и в моем случае) удаленные репозитории (или, скорее, ссылки на удаленные репозитории, которые отображаются на git remote -v
), возможно, не обновляются.
Из-за того, что ваш push синхронизировал вашу локальную / ветвь с вашей удаленной / ветвью, тем не менее, кэш в вашем локальном репо по-прежнему показывает предыдущий коммит (локальный / ветвь ... при условии, что был передан только один коммит) как HEAD. 1009 *
Чтобы подтвердить вышеуказанное, клонируйте репозиторий в другом месте и попробуйте сравнить локальный / ответвительный HEAD и удаленный / ответвительный HEAD. Если они оба одинаковы, вы, вероятно, столкнулись с проблемой, которую я сделал
Решение:
$ git remote -v
github git@github.com:schacon/hw.git (fetch)
github git@github.com:schacon/hw.git (push)
$ git remote add origin git://github.com/pjhyett/hw.git
$ git remote -v
github git@github.com:schacon/hw.git (fetch)
github git@github.com:schacon/hw.git (push)
origin git://github.com/pjhyett/hw.git (fetch)
origin git://github.com/pjhyett/hw.git (push)
$ git remote rm origin
$ git remote -v
github git@github.com:schacon/hw.git (fetch)
github git@github.com:schacon/hw.git (push)
Теперь сделайте push -f
следующим образом
git push -f github master
### Обратите внимание, что у вашей команды больше нет origin
!
Сделайте git pull
сейчас
git pull github master
на git status
получить
# On branch master
nothing to commit (working directory clean)
Я надеюсь, что это будет полезно для кого-то, так как количество просмотров настолько велико, что при поиске этой ошибки почти всегда эта ветка выводится вверху
Также см. gitref для деталей