Как исправить "Не могу вытащить репозиторий с состоянием: 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. Затем вы можете разрешить конфликтный файл и добавить в индекс, зафиксировать и нажать