#git #git_commit #git_remote #git_push
Ситуация такая: на сервере удалил репозиторий и создал заново, с локального теперь нужно сделать push, но если сделаю, то всю историю коммитов запишет на сервер. Как начать с нуля?
Ответы
Ответ 1
Все эти инструкции верны, если на удаленном сервере у вас пусто, а локально - есть проект и репозиторий Git с историей, которую вы хотите удалить. Что будет потеряно безвозвратно Собственно, история. Вы точно хотите ее потерять? Ради нее весь Git и придумывался. Весь код в не-слитых (unmerged) ветках. Весь код в orphaned ветках. Метки (tags) Быстрый способ Найдите первый коммит в ветке, запомните его sha1. git log --oneline Переключитесь на тот коммит, который хотите сохранить в итоге. git checkout master Теперь используем git reset --soft чтобы сделать из всей истории один коммит (подробнее - пункт 4.1: Как вернуться (откатиться) к более раннему коммиту? ). git reset --softgit commit -m'слил историю в один коммит' Долгий способ Сделайте бэкап локального репозитория. Можно запушить на резервный удаленный репозиторий, а можно просто взять и переместить папку .git в другое место. mkdir ../git-backup mv .git ../git-backup/.git Если не переместили локально, а забэкапили куда-то еще: удаляем папку. rm -Rf .git Теперь заново инициализируем репозиторий: git init Добавляем все файлы в рабочей области и делаем коммит. git add . git commit -m'начал с нуля' Когда все готово Подключаем удаленный репозиторий и заливаем на него изменения: git remote add origin git push -u origin --all Ответ 2
Сделать clone, скопировать файлы (без .git), сделать push! Нет? ))Ответ 3
Эта команда делает совсем другое: стирает всю историю до commitId и возвращает рабочую область к его состоянию. При этом вы потеряете данные более поздних коммитов. git reset --hard commitId #УДАЛЯЕТ ИСТОРИЮ GIT
Комментариев нет:
Отправить комментарий