Eclipse/Git - Pull Failed Dirty Worktree
Как говорится в заголовке, я пытаюсь извлечь из репозитория git, который я разделяю между моим другом и мной, и я могу совершить, он может совершить, но всякий раз, когда кто-либо из нас пытается его вытащить, назад, что он потерпел неудачу: DIRTY_WORKTREE
Оба из нас чрезвычайно новы для git и имеют нулевое направление для устранения этой проблемы.
Ответы
Ответ 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 был вызван этой последовательностью:
- В фиксации я также передал некоторые файлы, которые я должен был проигнорировать
- В следующем коммите я модифицировал.gitignore, который игнорирует вышеуказанные файлы
- Попробуйте переустановить поверх другой ветки, где отсутствует мое изменение.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, эта проблема исчезает.