it-roy-ru.com

Как исправить ошибку "Не удается получить доступ к хранилищу с состоянием: 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

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

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

20
NobleUplift

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

7
David Deutsch

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

Right click on your project -> Team ->Merge

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

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

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

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

Это откроет окно сравнения. Проверьте и объедините изменения, которые вы хотите . Как только вы завершите объединение 

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

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

4
Vijay R.
  1. Я пытался решить проблему с openshift, рекомендованную ранее: git merge --abort.
  2. Я стал к проблеме «не могу вытащить в хранилище с состоянием: merging_resolved». Разрешил это с помощью: git reset --hard См .: "не может получить доступ к хранилищу с состоянием: merging_resolved"
  3. Чем сделал: git pull
  4. мерзавец совершить
  5. Чтобы выйти из редактора VIM, я использовал: <Esc key>:q<Enter key>

    6. Гит Пуш

Успех!

3
RoutesMaps.com

Вот как я решил - 

1) Right click on project -> Team -> Reset -> [Reset popup will open]
2) By Default Local Repo will be selected -
Reset to: refs/head/master
Reset Type: Mixed (HEAD and index updated)
3) Click on Reset
4) Right click on project -> Team -> Git Pull
5) Right click on project -> Team -> Push to upstream
1
prash

Щелкните правой кнопкой мыши по файлу/пакету конфликта и выберите «Добавить в индекс и зафиксировать».

1
Sumit

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

0
david_pang

На полпути через затмение мое Затмение умерло. Впоследствии я остался в этом состоянии.

Для решения проблемы я удалил файл index.lock в папке .git. Только тогда я смог сделать код git merge --abort, как предложено в другом месте.

0
david_lid