Небольшое отклонение от Майкл * ответ :
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
, что не так уж и плохо, учитывая, что вам нужна только предыдущая история только для справки и архивирования.