Show diff IntelliJ всегда сравнивается с тем же старым коммитом - PullRequest
0 голосов
/ 06 июля 2019

Это странная проблема, которую я наблюдаю в моем IntelliJ.Команда show-diff всегда сравнивает текущую локальную версию с тем же старым коммитом git, который НЕ является последним коммитом.В идеале это следует сравнить с последним коммитом.Если файл был создан после этой фиксации, то ошибка «Неправильное имя объекта».Чтобы обойти эту проблему, я должен щелкнуть правой кнопкой мыши-> Git-> Сравнить с, а затем выбрать последнюю версию.Любая подсказка, в чем может быть проблема?Я пытался найти этот идентификатор коммита в папке проекта IntelliJ, но не смог его найти.Также обновил Git CMD до последней версии, но без облегчения.

1 Ответ

1 голос
/ 09 июля 2019

Чтобы показать diff для файла из локальных изменений, IntelliJ вызывает git log -n1 HEAD -- path/to/file, чтобы получить хеш последней версии, а затем получает содержимое файла с git cat-file -p hash:path/to/file.Последнее является результатом ошибки «Неправильное имя объекта».

Похоже, что HEAD неправильно разрешен с помощью git, в чем я действительно сомневаюсь, или существует что-то (например, сторонний плагин, такой как Git Scope), которое изменяетлогика.

Еще одна возможная причина - сложное вложенное Git-репо, включающее историю вплоть до проблемного коммита.В этом случае Diff может быть запрошен из этого репозитория.

Вы можете проверить ошибку и выполнить все команды IDE, включающие ведение журнала отладки (используйте Справка - Настройки журнала отладки ... )для #git4idea.commands.GitHandler.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...