Эгит отклоняются не вперед



Я получаю это сообщение при нажатии на репозиторий github. Можете ли вы сказать мне, шаг за шагом процедуры, чтобы исправить это? Я толкнул только один раз, и это было успешно. Но, когда я обновил проект и попытался протолкнуть свой второй коммит, он показывает "master rejected non-fast-forward" и не позволяет мне нажимать. Пожалуйста, объясните процедуру.

675   8  

8 ответов:

У меня была такая же проблема, и я смог ее исправить. afk5min был прав, проблема в том, что ветка, из которой вы вытащили код, с тех пор изменилась в удаленном репозитории. В соответствии со стандартной практикой git (http://git-scm.com/book/en/Git-Basics-Working-with-Remotes), вам нужно (сейчас) объединить эти изменения в удаленном репозитории в ваши локальные изменения, прежде чем вы сможете зафиксировать. Это имеет смысл, это заставляет вас принимать изменения других и объединять их в свой код, гарантируя, что ваш код продолжает работать с другими изменениями в месте.

в любом случае, на крыльцо.

  1. сконфигурируйте 'fetch', чтобы получить ветку, из которой вы изначально вытащили.

  2. извлеките удаленную ветку.

  3. объединить эту удаленную ветвь в локальную ветвь.

  4. зафиксируйте изменение (слияние) в локальном РЕПО.

  5. Нажмите кнопку изменения на пульте дистанционного управления РЕПО.

подробнее...

  1. в eclipse откройте представление "репозитории Git".

  2. убедитесь, что вы видите свой локальный репозиторий и можете видеть удаленный репозиторий как подпапку. В моей версии это называется Remotes, и тогда я могу видеть удаленный проект внутри этого.

  3. найдите зеленую стрелку, указывающую влево, это стрелка "fetch". Щелкните правой кнопкой мыши и выберите 'Настройки Принеси".

  4. вы должны увидеть URI, убедитесь, что он указывает на удаленный репозиторий.

  5. посмотрите в разделе ref mappings всплывающего окна. Моя была пуста. Это будет указывать, какие удаленные ссылки вы хотите получить. Нажмите Кнопку "Добавить".

  6. введите имя ветви, которую необходимо извлечь из удаленного репозитория. Мой был "мастер" (кстати, выпадающее меню здесь было бы здорово!!, на данный момент, Вы должны ввести его). Продолжайте всплывающее окно, в конечном итоге нажав кнопку "Готово".

  7. Нажмите кнопку "Сохранить и извлечь". Это приведет к удаленной ссылке.

  8. посмотрите в папке "ветви" вашего локального репозитория. Теперь вы должны увидеть эту удаленную ветвь в удаленной папке. И снова я вижу "хозяина".

  9. щелкните правой кнопкой мыши на локальной ветви в папке "Local ""ветвей", которая называется "master". Выберите "объединить", а затем выберите удаленную ветвь, которая называется 'origin / master'.

  10. процесс через слияние.

  11. зафиксируйте любые изменения в локальном репозитории.

  12. протолкнуть изменения в удаленный репозиторий.

  13. идите выпейте вкусный напиток, поздравляя себя. Взять отгул.

в моем случае я выбрал при нажатии. Это сработало как заклинание.

тем временем (пока вы обновляли свой проект), другие коммиты были сделаны в ветке "master". Поэтому вы должны сначала вытащить эти изменения, чтобы иметь возможность продвигать свои изменения.

применимо для Eclipse Luna + Eclipse Git 3.6.1

я,

  1. клонированный репозиторий git
  2. внес некоторые изменения в исходный код
  3. поэтапные изменения из Git Staging View
  4. наконец, commit и push!

и я столкнулся с этой проблемой с EGit и вот как я это исправил..

Да, кто-то совершил изменения, прежде чем я совершу свои изменения. Так что изменения есть отвергнутый. После этой ошибки изменения фактически фиксируются в локальном репозитории. Я не хотел просто Pull изменения, потому что я хотел сохранить linear history Как отметил в в каких случаях "git pull" может быть вредным?

Итак, я выполнил следующие шаги

  1. С точки зрения репозитория Git щелкните правой кнопкой мыши на соответствующем Git
    проект
  2. выберите Fetch from Upstream - он извлекает удаленные обновления (ссылки и объекты), но не обновления производятся локально. для получения дополнительной информации см. в чем разница между 'git pull' и 'git fetch'?
  3. выберите Rebase... - это открыть всплывающее окно, нажмите на кнопку Preserve merges during rebase понять, почему
    что именно делает git "rebase -- preserve-merges "(и почему?)
  4. нажать на кнопку Rebase button
  5. если есть/есть conflict(s) перейдите к шагу 6, иначе Шаг 11
  6. a Rebase Result всплывающее окно появится, просто нажмите на OK
  7. file comparator откроется, вам нужно изменить left side file.
  8. как только вы закончите с объединением изменений правильно, goto Git Staging view
  9. stage the changes. то есть add to index
  10. в том же представлении нажмите на Rebase ->Continue. повторить 7 до 10, пока все конфликты не будут решены.
  11. С History просмотр, выберите строку фиксации и выберите Push Commit
  12. выберите Rebase Commits of local....... установите флажок и нажмите кнопку Далее. смотрите почему - мерзавец: перебазироваться на развитие из вышестоящего
  13. нажать на кнопку Finish

Примечание: если у вас есть несколько локальных коммитов репозитория, вам нужно раздавить их в одном коммите, чтобы избежать нескольких слияний.

открыть git view:

1-Выберите свой проект и выберите объединить 2-Выберите удаленное отслеживание 3 - Нажмите кнопку ОК

Git объединит удаленную ветку с локальным репозиторием

4 - затем нажать

Я обнаружил, что вы должны быть на последней фиксации git. Итак, это шаги, которые необходимо предпринять: 1) Убедитесь, что вы не работали над теми же файлами, иначе вы столкнетесь с ошибкой DITY_WORK_TREE. 2) получить последние изменения. 3) зафиксируйте свои обновления.

надеюсь, что это помогает.

  1. зайдите в Github и создайте РЕПО для вашего нового кода.
  2. используйте новый https или ssh url в Eclise, когда вы делаете толчок вверх по течению;

эта ошибка означает, что удаленный репозиторий имел другие коммиты и опережал ваш локальный филиал.
Я пытаюсь сделать git pull, а затем git push. Если их нет конфликтующих изменений, git pull получает последний код в мою локальную ветку, сохраняя мои изменения нетронутыми.
Затем git push толкает мои изменения в главную ветку.

Comments

    Ничего не найдено.