Я использую
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
показывает "deleted file", что тоже неверно, поскольку файл B.txt
существует и в рабочем дереве, и в коммите B
. ИМХО, файл должен быть показан как измененный. Удивительно, но после добавления файла в индекс он работает, хотя сравнивается не индекс. Как получить правильный diff без него?