Как я могу выбрать перезаписать удаленный репозиторий локальными коммитами?
В основном, из-за событий, находящихся вне моего контроля, мое удаленное репо было перемещено - я много работал над своей локальной копией, и теперь я просто хочу перезаписать все в удаленном репо с моими локальными файлами.
Однако, похоже, я не могу этого сделать. Самое близкое, что я могу получить, это вытащить и объединить, но затем он хочет провести меня через какой-то запутанный процесс для слияния. Я не хочу сливаться. Я хочу перезаписать. Мне не нужна новая ветка - в основном, я просто хочу начать новую жизнь.
Удаленное репо не работает.
Ответы
Ответ 1
Вы можете удалить ветвь и воссоздать ее, скажем, ветку, которую вы хотите перезаписать, dev
:
Удалите ветку на удаленном хосте (github)
git push origin :dev
Затем просто нажмите на свою dev:
git push origin dev
Я использую Github для хостинга, не знакомы с неряшливым, но я думаю, что он будет работать и для невозмутимого.:)
Как упоминалось в @melee, вы также можете использовать
git push origin dev -f
(не уверен, действителен ли -f
, но --force
ОК)
git push origin dev --force
чтобы принудительно перезаписать ветвь. Я помню, что я это делал раньше. Спасибо @melee.:)
Ответ 2
Как это сделать для главной ветки, не вытаскивая данные из удаленного репо:
-
Создайте новую папку, init git, добавьте удаленное репо - не тяните и не выбирайте!
mkdir clean_repo
git init
git remote add origin <remote-repo>
-
создайте (и переключитесь на) пустую локальную ветвь, добавьте, зафиксируйте и вставьте тестовый файл в это.
git checkout test
echo "test" > test
git add .
git commit -m "adding test"
git push origin:test
-
В github/bitbucket измените ветвь по умолчанию на новую ветку
-
В локальном режиме, переключитесь на мастер-ветвь, зафиксируйте и нажмите на удаленный репо/ветвь
git checkout -b master
git push origin --mirror
Ответ 3
Я не являюсь экспертом в экосистеме github, но почему вы не можете просто reset удаленный URL-адрес репозитория?
git remote set-url origin /path/to/your/new/remote/repository/url
Вам также может потребоваться настроить ветку up-stream, просмотрев здесь.
Подробнее о git remote...
, пожалуйста, посмотрите здесь.
Ответ 4
Имея ту же проблему. Эта команда работала для меня.
git push --set-upstream origin master --force