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

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

В основном, из-за событий, находящихся вне моего контроля, мое удаленное репо было перемещено - я много работал над своей локальной копией, и теперь я просто хочу перезаписать все в удаленном репо с моими локальными файлами.

Однако, похоже, я не могу этого сделать. Самое близкое, что я могу получить, это вытащить и объединить, но затем он хочет провести меня через какой-то запутанный процесс для слияния. Я не хочу сливаться. Я хочу перезаписать. Мне не нужна новая ветка - в основном, я просто хочу начать новую жизнь.

Удаленное репо не работает.

4b9b3361

Ответ 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