Я использую
git diff mycommit
для сравнения моего рабочего дерева с mycommit
, но он, кажется, игнорирует файлы, отсутствующие в текущем индексе. Вы можете воспроизвести его следующим образом:
git init
echo A > A.txt; git add .; git commit -m A; git branch A
echo B > B.txt; git add .; git commit -m B; git branch B
git reset --hard A
echo BB > B.txt
git diff B
Выход (с git версия 1.7.3.3) пуст. Использование --diff-filter=ACDMRTUXB
показывает "удаленный файл", что также неверно, так как файл B.txt
существует как в рабочем дереве, так и в commit B
. IMHO, файл должен быть указан как измененный. Удивительно, но он работает после добавления файла в индекс, хотя это не индекс, который сравнивается. Как я могу получить правильный diff без него?