Страницы

Поиск по вопросам

среда, 29 января 2020 г.

Git: отказ слияния несвязанных историй изменений. Как исправить?

#git #bitbucket


Создал удаленный репозитарий кода на bitbucket. Потом по этой инструкции
добавляю локальный репозиторий на bitbucket:

$ git init
$ git add .
$ git commit -m 'initial commit of full repository'
$ git remote add origin git@bitbucket.org:username/perl.git
$ git push -u origin --all


Здесь появляется такое сообщение: 


  To bitbucket.org:username/perl.git
   ! [rejected]        master -> master (fetch first)
  error: не удалось отправить некоторые ссылки в «git@bitbucket.org:username/perl.git»
  подсказка: Обновления были отклонены, так как внешний репозиторий содержит
  подсказка: изменения, которых у вас нет в вашем локальном репозитории.
  подсказка: Обычно, это связанно с тем, что кто-то уже отправил изменения в 
  подсказка: то же место. Перед повторной отправкой ваших изменений, вам нужно
  подсказка: забрать и слить изменения из внешнего репозитория себе
  подсказка: (например, с помощью «git pull …»).
  подсказка: Для дополнительной информации, смотрите «Note about fast-forwards»
  подсказка: в «git push --help».


Ладно. Команда git pull origin master пишет следующее:


  warning: не общих коммитов
  remote: Counting objects: 3, done.
  remote: Compressing objects: 100% (2/2), done.
  remote: Total 3 (delta 0), reused 0 (delta 0)
  Распаковка объектов: 100% (3/3), готово.
  Из bitbucket.org:username/perl
   * branch            master     -> FETCH_HEAD
   * [новая ветка]     master     -> origin/master
  fatal: отказ слияния несвязанных историй изменений


Я пользовался раньше и Git, и Bitbucket, но такие проблемы у меня впервые. Вообще
не понимаю, что за ерунда такая.
    


Ответы

Ответ 1



В удаленном репозитории уже есть коммиты. тут есть несколько вариантов, как решить этот вопрос Коммиты в удаленном репозитории нужны: git pull, после мержа - git push Коммиты в удаленном репозитории НЕ нужны (например там добавлен пустой readme): git push --force. НЕ рекомендую делать такое, если история коммитов уже есть.

Ответ 2



Зря пометили как верный ответ от @dekanszn Он скорее ломает чем чинит: git pull попросту нельзя сделать ввиду ошибки, описанной в вопросе. А удалять изменения не каждый захочет. Решается так: git pull origin master --allow-unrelated-histories Затем решаем конфликты, Затем commit & push

Комментариев нет:

Отправить комментарий