Подтвердить что ты не робот

Как заставить форматировать поддерево для перезаписывания удаленных изменений?

Мы используем развертывание поддерева a lá this Gist для развертывания подкаталога нашего Yeoman проекта, В нашем случае ветвь называется производством, а не gh-pages.

Это отлично работало до вчерашнего дня, когда сервер Git отклонил команду git subtree push --prefix dist origin production, говоря

 ! [rejected]        9fe1683aa574eae33ee6754aad702488e0bd37df -> production (non-fast-forward)
error: failed to push some refs to '[email protected]:web-and-new-media/graduation2015.git'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart.

Если я переключаюсь на производственную ветвь локально (что чисто), git pull возвращает Your branch is up-to-date with 'origin/production'., даже если я использую параметр --rebase.

Я вижу содержимое производственной ветки на сервере через наш веб-интерфейс и там ничего не должно быть, просто скомпилированный вывод нашего каталога dist, как я ожидал.

С этой целью кажется, что я должен быть в состоянии принудительно перезаписать эти файлы, но как? git subtree push не имеет опции --force.

4b9b3361

Ответ 1

Трюк состоял в том, чтобы связать разделение поддерева с принудительным нажатием:

git push origin `git subtree split --prefix dist master`:production --force

Я получил это из добавления http://clontz.org/blog/2014/05/08/git-subtree-push-for-deployment/, который фактически ссылается на this ответ на переполнение стека. Я снял это раньше, но пост Стива Клонца сделал это для меня.