Как исправить "Не могу вытащить репозиторий с состоянием: MERGING" в EGit?

Недавно моя команда переместилась на Git, а во второй раз сегодня Git ошибся в одной строке кода, которую я сам изменил и уже привязан к моему локальному файлу, в файле, который последний раз редактировался себя. Это сообщение об ошибке, которое оно дает мне:

Cannot pull into a repository with state: MERGING"
org.eclipse.jgit.errors.WrongRepositoryStateException

Cannot pull into a repository with state: MERGING
    Cannot pull into a repository with state: MERGING

Я не могу вытащить или нажать на удаленный сервер. Как это исправить?

Собственно, лучший вопрос, как я могу это предотвратить?

Ответы

Ответ 1

Это происходит потому, что вы находитесь в середине слияния. Либо завершите слияние, разрешив все конфликты и добавив соответствующие файлы в индекс, либо прервите слияние с помощью git merge --abort. Обратите внимание: если вы прекратите слияние, вы, скорее всего, столкнетесь с конфликтами, когда вы сделаете свой git pull, поскольку я предполагаю, что ваши предыдущие конфликты вызвали конфликт (поэтому вы остались в середине слияния).

Ответ 2

  • Я попробовал проблему с проектом openshift, рекомендованную ранее: git merge --bort.
  • Я столкнулся с проблемой "не могу вытащить репозиторий с состоянием: merging_resolved". Разрешено: git reset --hard См.: не может входить в репозиторий с состоянием: merging_resolved "
  • Чем сделано: git pull
  • git commit
  • Чтобы выйти из редактора VIM, я использовал: <Esc key>:q<Enter key>

    6. git push

Успех!

Ответ 3

Проблема в том, что файлы удаленных файлов репозитория были изменены (т.е. кто-то изменил и переместил файл в репозиторий, который вы изменили в своей локальной копии), и теперь вы также отредактировали его. Так что, когда вы пытаетесь нажать файл это порождает ошибку.
Вы должны объединить файл, а затем зафиксировать изменения и нажать.

Right click on your project -> Team ->Merge

Когда вы сделаете это, он попросит, чтобы какая ветка сливалась. Выберите ветку и перейдите к объединению.

case 1: Если конфликт отсутствует, процесс слияния будет завершен. Вы можете совершить и нажать сейчас.

case 2: В случае возникновения конфликта egit отобразит сообщение об ошибке как "Конфликт", и все файлы, имеющие конфликт, будут отмечены красным значком над именем файла в проводнике проекта.

Right click the files with conflict-> Team -> Merge Tool

Это откроет окно сравнения. Проверьте и слейте нужные изменения. После завершения слияния

Right click the files with conflict-> Team -> Add to index Commit the changes and Push

Примечание. Перед этим процессом объединения вы должны перенести все свои поэтапные файлы.
И чтобы ответить на ваш вопрос
"На самом деле, лучший вопрос, как я могу это предотвратить?"
Это не проблема, это происходит, когда несколько пользователей работают в одном репозитории. В любом случае, когда вы пытаетесь нажать, перед тем, как нажать, попробуйте вытащить из удаленного репозитория. Когда вы попытаетесь потянуть, egit скажет, есть ли какие-либо ожидающие изменения или конфликты в удаленный репозиторий, и вы разрешаете конфликты и нажимаете.

Ответ 4

Щелкните правой кнопкой мыши файл/пакет конфликта и выберите команду add to index и commit

Ответ 5

Я встретил эту проблему, используя eGit сегодня. Решение состоит в том, что вы можете выбрать конфликтный файл, а затем выполнить команду Revert commit. Затем вы можете разрешить конфликтный файл и добавить в индекс, зафиксировать и нажать