Подтвердить что ты не робот

Eclipse/Git - Pull Failed Dirty Worktree

Как говорится в заголовке, я пытаюсь извлечь из репозитория git, который я разделяю между моим другом и мной, и я могу совершить, он может совершить, но всякий раз, когда кто-либо из нас пытается его вытащить, назад, что он потерпел неудачу: DIRTY_WORKTREE

Оба из нас чрезвычайно новы для git и имеют нулевое направление для устранения этой проблемы.

4b9b3361

Ответ 1

Я смог исправить аналогичную проблему, используя клиент командной строки git. Хотя eclipse (egit) говорил только DIRTY_WORKTREE, в командной строке я видел несколько конфликтующих файлов. Используя git merge master из командной строки, я мог бы легко разрешить конфликты, а затем в eclipse. Так что для меня это, кажется, проблема на элите.

Ответ 2

Другой подход, если у вас нет какой-либо работы, заключается в том, чтобы попытаться и reset - защитить ваш HEAD.

С EGit: Сброс текущего HEAD:

Выберите Team -> Reset... в проекте. Откроется диалоговое окно, в котором вы можете выбрать ветку или тег.

Reset HEAD в вашей текущей ветке, чтобы reset индекс и рабочее дерево к последнему фиксации указанной ветки.

Затем попробуйте вытянуть.

Ответ 3

У меня были незафиксированные изменения. После того, как я их совершил, затем объединился, проблема с грязным worktree исчезла.

Ответ 4

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

Ответ 5

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

Ответ 6

В eclipse я пошел в Team Synchronizing View и оттуда щелкнул правой кнопкой мыши на моем проекте и ударил 'overwrite', чтобы перезаписать все локальные изменения. Затем повторите попытку слияния.

Ответ 7

Только для добавления другого случая у меня есть DIRTY_WORKTREE, я единственный, кто комментирует мой проект Github, поэтому в EGit я сделал ветвь Push... с "Force overwrite ветки на удаленном, если она существует и расходится"

ОПАСНО: Если другие работают над одним и тем же проектом, это действие удалит их фиксации с момента расхождения.

Ответ 8

У меня была аналогичная проблема на Eclipse с неизменными изменениями как неравномерная. После совершения я мог слиться, и все вернулось, как должно быть. Взгляните на исходный код и проверьте все изменения. Если вы не можете reset трудно.

Ответ 9

Удалите затронутые файлы и попытайтесь снова вытащить их. Затем нажмите ваши изменения в git. У меня такая же проблема, и это сработало для меня.

Ответ 10

В моем случае DIRTY_WORKTREE был вызван этой последовательностью:

  1. В фиксации я также передал некоторые файлы, которые я должен был проигнорировать
  2. В следующем коммите я модифицировал.gitignore, который игнорирует вышеуказанные файлы
  3. Попробуйте переустановить поверх другой ветки, где отсутствует мое изменение.gitignore

В этом случае Eclipse считает, что ваше рабочее дерево грязно. В самом деле, нет очевидного сравнения двух наборов файлов, когда один из двух игнорирует некоторые файлы, а другой - нет.

Чтобы решить проблему в Eclipse, я сделал следующее:

  • Измените.gitignore, чтобы он был таким же, как тот, который был в ветке, я хочу переустановить
  • К счастью, начните перезагрузку или перезагрузку слиянием.

Ответ 11

Если у вас есть изменения без фиксации, eclipse сообщит вам, если вы попытаетесь получить изменения. Чтобы решить эту проблему, вы можете отменить изменения или сделать коммит этих файлов.

Источник: https://www.eclipse.org/forums/index.php?t=msg&th=890477&goto=1565668&#msg_1565668.

Ответ 12

Если вы хотите переопределить вашу локальную ветвь к исходной ветке.

Перейдите к представлению Git-репозитория> щелкните по мастер-источнику> Выберите сброс → он покажет текущий заголовок и сброс до ветки. Выберите HARD reset, если вы хотите полностью перезаписать ваши локальные изменения

Ответ 13

Эта ошибка возникает, когда вы сделали локальные изменения в файлах, которые еще не были зафиксированы. На языке git вы не зафиксировали изменения в вашем рабочем дереве.

Когда вы находитесь в такой ситуации и пытаетесь вытащить, git не уверен, что делать с локальными изменениями, которые у вас есть. Должен ли он отказаться от них и вытащить изменения с пульта? Должен ли он зафиксировать их, прежде чем вытащить изменения из пульта? Вот почему это не удается.

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

Ответ 14

Я думаю, что эта проблема вызвана версией EGit. Когда я использовал Spring Tools Suite с EGit 2.6, я также столкнулся с такими же проблемами.

EGit включен в пакет STS по умолчанию, поэтому обновление EGit очень сложно.

В настоящее время я использую Eclipse WTP с EGit 3.7, эта проблема исчезает.