Развертывание переписанного приложения Github / Heroku - PullRequest
4 голосов
/ 14 сентября 2011

У меня есть приложение, которое работает на Heroku / Github, но недавно полностью перестроило его с нуля - я хочу сохранить старое имя репозитория, как лучше заменить действующий код новым кодом?

Ответы [ 2 ]

5 голосов
/ 14 сентября 2011

Небольшое отклонение от Майкл * ответ :

git branch -M master old_master
git rm -rf .
git checkout --orphan master
git remote add version2 "/path/to/new_version/.git"
git pull version2 master

(как обычно, сначала сделайте резервную копию всего)

Если выиспользуя git1.7.2 + , вы можете использовать git checkout --orphan:

Подобно -b, --orphan создает новую ветвь, но этозапускается без какого-либо коммита.
После запуска "git checkout --orphan newbranch" вы попадаете в новую ветку "newbranch", и первый созданный вами коммит из этого состояния запустит новую историю без каких-либо предков.

При создании ветви, деревья которой не похожи на ветви исходной ветви, может быть проще начать работу с новой веткой, отследив и удалив все файлы рабочего дерева, которые исходили из исходной ветви, запустив 'git rm -rf . 'сразу после запуска "checkout --orphan".

Вы избегаете двух разных историй в одной и той же ветке 1033 * с резкими изменениями в одномконкретный коммит.
Вместо этого вы храните несколько корневых веток с другой историей в iт.
Но это означает переписывание истории коммитов master, что не так уж и плохо, учитывая, что вам нужна только предыдущая история только для справки и архивирования.

3 голосов
/ 14 сентября 2011
cd old_version
git rm -rf .
git commit -m "Removing the old code"
git remote add version2 "/path/to/new_version/.git"
git pull version2 master

Это должно полностью сохранить обе истории и иметь новую версию как ГОЛОВУ оригинального репо.Я бы порекомендовал сделать резервную копию репозитория, прежде чем вы попробуете это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...