Я получаю это сообщение при отправке в репозиторий github. Подскажите пошаговую процедуру, как это исправить? Я нажал только один раз, и все прошло успешно. Но когда я обновил проект и попытался отправить свою вторую фиксацию, он показывает «мастер отклонил без перемотки вперед» и не позволяет мне нажать. Пожалуйста, объясните процедуру.
89
Ответы:
У меня была такая же проблема, и я смог ее исправить. afk5min был прав, проблема в том, что ветка, из которой вы вытащили код, с тех пор изменилась в удаленном репозитории. В соответствии со стандартной практикой git ( http://git-scm.com/book/en/Git-Basics-Working-with-Remotes ) вам нужно (сейчас) объединить эти изменения в удаленном репозитории с вашими локальными изменениями, прежде чем вы может совершить. В этом есть смысл, это вынуждает вас принимать изменения других и объединять их в свой код, гарантируя, что ваш код продолжит работать с другими изменениями на месте.
В любом случае, по ступенькам.
Сконфигурируйте "выборку" для извлечения ветки, из которой вы изначально извлекли.
Получите удаленную ветку.
Объедините эту удаленную ветку с вашей локальной веткой.
Зафиксируйте изменение (слияние) в своем локальном репо.
Отправьте изменение в удаленное репо.
В деталях...
В eclipse откройте представление «Репозитории Git».
Убедитесь, что вы видите свой локальный репозиторий и можете видеть удаленный репозиторий как подпапку. В моей версии он называется Remotes, и тогда я могу видеть удаленный проект внутри него.
Ищите зеленую стрелку, указывающую влево, это стрелка «выборки». Щелкните правой кнопкой мыши и выберите «Настроить выборку».
Вы должны увидеть URI, убедитесь, что он указывает на удаленный репозиторий.
Посмотрите во всплывающем окне в разделе сопоставлений ссылок. Моя была пуста. Это укажет, какие удаленные ссылки вы хотите получить. Щелкните "Добавить".
Введите имя ветки, которую нужно получить из удаленного репозитория. Мой был «мастером» (кстати, выпадающий список здесь был бы отличным !!, пока вы должны его ввести). Продолжайте во всплывающем окне, в конце концов нажав «Готово».
Нажмите "Сохранить и получить". Это позволит получить эту удаленную ссылку.
Поищите в папке «Филиалы» вашего локального репозитория. Теперь вы должны увидеть эту удаленную ветку в удаленной папке. Я снова вижу «хозяина».
Щелкните правой кнопкой мыши локальную ветвь в папке «Local» раздела «Branch», которая называется «master». Выберите «Объединить», а затем выберите удаленную ветку с именем «origin / master».
Процесс через слияние.
Зафиксируйте любые изменения в вашем локальном репозитории.
Отправьте свои изменения в удаленный репозиторий.
Иди выпей вкусного напитка, поздравив себя. Оставшуюся часть дня возьмите выходной.
источник
Merge
в мастере, а затем щелкните правой кнопкой мыши еще раз на проекте, которыйpush branch Master
работалВ моем случае я установил
Force Update
флажок при нажатии. Оно работало завораживающе.источник
Тем временем (пока вы обновляли свой проект) в ветку master были внесены другие коммиты. Следовательно, вы должны сначала извлечь эти изменения, чтобы иметь возможность протолкнуть свои изменения.
источник
Применимо для Eclipse Luna + Eclipse Git 3.6.1
Я,
И я столкнулся с этой проблемой с EGit, и вот как я ее исправил ...
Да, кто-то зафиксировал изменения, прежде чем я зафиксирую свои изменения. Так что изменения отклонены. После этой ошибки изменения фактически фиксируются в локальном репозитории. Я не хотел просто
Pull
вносить изменения, потому что хотел сохранить,linear history
как указано в - В каких случаях `git pull` может быть вредным?Итак, я выполнил следующие шаги
проект Git
Fetch from Upstream
- извлекает удаленные обновления (ссылки и объекты), но локальные обновления не производятся. для получения дополнительной информации см. В чем разница между «git pull» и «git fetch»?Rebase...
- это открывает всплывающее окно, нажмите, чтобыPreserve merges during rebase
узнать, почему.Что именно делает git "rebase --preserve-merges" (и почему?)
Rebase button
conflict(s)
, переходите к шагу 6, иначе шагу 11Rebase Result
всплывающее окно, просто нажмите наOK
file comparator
откроется, нужно доработатьleft side file
.Git Staging
просмотруstage the changes
. т.е.add to index
Rebase
->Continue
. повторите от 7 до 10, пока все конфликты не будут разрешены.History
представлении выберите строку фиксации и выберитеPush Commit
Rebase Commits of local.......
флажок и нажмите «Далее». см. почему - Git: переустановить на ветку разработки из апстримаFinish
Примечание: если у вас есть несколько коммитов локального репозитория, вам нужно сжать их за один коммит, чтобы избежать множественных слияний.
источник
Настроить После нажатия кода, когда вы получите отклоненное сообщение, нажмите кнопку «Настроить» и нажмите «Добавить спецификацию», как показано на этом рисунке.
В раскрывающемся списке щелкните ссылку ref / Heads / yourbranchname и снова нажмите Добавить спецификацию.
Убедитесь, что вы выбрали принудительное обновление
Наконец, сохраните и отправьте код в репо
источник
Откройте git view:
1- выберите свой проект и выберите слияние 2- Выберите удаленное отслеживание 3- нажмите ОК
Git объединит удаленную ветку с локальным репозиторием
4- затем нажмите
источник
Эта ошибка означает, что в удаленном репозитории были другие коммиты и он опередил вашу локальную ветку.
Я пытаюсь выполнить git pull, а затем git push. Если нет конфликтующих изменений, git pull получает последний код в мою локальную ветку, сохраняя при этом мои изменения нетронутыми.
Затем git push отправляет мои изменения в основную ветку.
источник
Я обнаружил, что у вас должна быть последняя фиксация git. Итак, следующие шаги: 1) убедитесь, что вы не работали с одними и теми же файлами, иначе вы столкнетесь с ошибкой DITY_WORK_TREE. 2) вытащить последние изменения. 3) зафиксируйте свои обновления.
Надеюсь это поможет.
источник
источник