Я работаю в команде с несколькими разработчиками, использующими git на BitBucket. Мы все работаем над dev
веткой, не дожидаясь master
релиза.
Один из разработчиков допустил неправильный код, который случайно перезаписал мой собственный, и теперь я пытаюсь отправить правильный код обратно в репо. Я читал об этой ошибке уже несколько дней, я больше не могу нажимать на репо, потому что получаю следующую ошибку:
! [rejected] master -> dev (fetch first)
error: failed to push some refs to 'https://myusername@bitbucket.org/repo_user/repo_name.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Я следую инструкциям и pull
, но затем получаю конфликт слияния. После ввода сообщения о конфликте слияния мой локальный код теперь является неправильным кодом, который другой разработчик загрузил случайно (как и ожидалось из файла pull
). Поэтому я заменяю неправильный код резервной копией, которую я скопировал перед фиксацией, и когда я снова пытаюсь нажать, я получаю ту же ошибку.
Это действительно расстраивает, я действительно хочу помочь своей команде и внести свой вклад, но я не могу из-за этой ошибки. Кто-нибудь знает, как решить эту проблему? Буду очень признателен за любую помощь.
Вот команды, которые я запускаю, чтобы зафиксировать, если это кому-то поможет:
git pull remotename master:dev
git add --all
git commit -m "some message"
git pull remotename master:dev
git push remotename master:dev
Я бы подумал, что если я сохраню этот порядок, у меня не будет конфликтов слияния. Думаю, я ошибался. еще раз спасибо
Обновление: я должен добавить, что несколько часов искал в Google и stackoverflow и выполнил разные инструкции, но все еще не могу push
перейти в dev
ветку.
git pull --rebase
.Вы можете отменить любые проверки, которые выполняет git, используя "принудительное нажатие". Используйте эту команду в терминале
Однако вы потенциально можете проигнорировать существующую работу, которая находится в удаленном режиме - вы фактически переписываете историю удаленного доступа, чтобы она была точно такой же, как ваша локальная копия.
источник
Это происходит, когда мы пытаемся нажать на удаленный репозиторий, но создали новый файл на удаленном компьютере, который, скажем, еще не был загружен
Readme
. В этом случае, как говорится в ошибкепоскольку мы не использовали обновленный удаленный доступ в нашей локальной среде. Так что сначала потяните с пульта
Он обновит ваш локальный репозиторий и добавит новый
Readme
файл. Затем отправьте обновленные изменения на удаленныйисточник
git pull origin develop
в своей локальной ветке разработки, но теперь я просто делаюgit pull
это нормально, я не знаю почему.git pull
достаточноСила толкать
git push -f origin master
источник
Обычно это происходит, когда репо содержит некоторые элементы, которых нет локально. Итак, чтобы протолкнуть наши изменения, в этом случае нам нужно интегрировать удаленные изменения, а затем нажать.
Так что создайте тягу с удаленного
Затем нажмите изменения на этот пульт
источник
Починил, не совсем уверен, что сделал. Я пробовал просто толкать и тянуть, используя:
git pull <remote> dev
вместо тогоgit pull <remote> master:dev
Надеюсь, это поможет кому-то, если у них такая же проблема.
источник
Вам необходимо ввести:
Если вы воспользуетесь a
git push origin master --force
, у вас возникнут большие проблемы.источник
git fetch
иgit merge
снова вручную после запуска,git pull
который их содержит ?Вы можете попробовать это:
git pull origin master --rebase
источник
Я сделал следующие шаги. наконец он работает нормально.
Шаги
1) git init
2) git status (для проверки статуса)
3) git add. (добавить все файлы изменений (.))
4) git commit -m
"<pass your comment>"
5) git удаленное добавление источника
"<pass your project clone url>"
6) GIT PULL --allow-несвязанные-истории
"<pass your project clone url>"
мастер7) git push -u
"<pass your project clone url>"
masterисточник
На самом деле github намного проще, чем мы думаем, и это происходит всякий раз, когда мы пытаемся нажать, даже после того, как мы явно вставили некоторые файлы в наш репозиторий git, поэтому, чтобы решить проблему, просто попробуйте ..
: git pull
а потом..
: git push
Примечание: если вы случайно застряли в редакторе vim после извлечения репозитория, не волнуйтесь, просто закройте редактор vim и попробуйте нажать :)
источник
У меня была эта ошибка, потому что на сервере было обновление, но SourceTree не показывал никаких доступных обновлений (возможно, потому, что я был в автономном режиме, когда он последний раз проверял). Итак, я обновил дерево исходных текстов, и теперь оно показывает 2 элемента для отправки вместо 1 элемента.
Поэтому обязательно нажмите « Обновить» или « Вытяните», если вы получите эту ошибку, а затем повторите попытку.
источник
Предупреждение git push -f origin master
источник
Ошибка, возможно, возникает из-за разной структуры кода, который вы фиксируете и который представлен на GitHub. Вы можете обратиться к: Как бороться с ошибкой « отказ от объединения несвязанных историй »:
источник
Самый лучший вариант для меня и работает и просто
git pull --rebase
затем
git push
удачи
источник
Вот как я решил эту проблему:
git pull origin master
git push origin master
Обычно это происходит, когда ваша удаленная ветка не обновляется. И после этого, если вы получите сообщение об ошибке типа «Пожалуйста, введите сообщение о фиксации», обратитесь к этому (Для меня ответ xiaohu Wang сработал :))
источник
Сначала у меня был проект SSDT VS. Я хотел продвинуть проект, как я, на Github. Я хотел, чтобы этот толчок стал начальной версией моего репо, запускающей основную ветку. Предложение Донала о git push -f origin master было самым простым способом (который я видел) для этого. Поскольку мне не приходилось беспокоиться о том, чтобы что-то переписывать, это казалось логичным.
источник
У меня такая же проблема. Так получилось, что я создал файл .Readme в репозитории, не вытаскивая его предварительно.
Вы можете удалить файл .Readme или вытащить его, прежде чем нажимать.
источник
ты можешь использовать
это поможет в случае, если некоторые изменения еще не зарегистрированы в вашем локальном репо. особенно
README.md
источник
У меня была такая же проблема, и я исправил ее, запустив: git push -f origin master
источник