Вопрос в том, что я добавил в мое рабочее дерево файл, который существует в другом коммите.Почему git diff <commit>
не показывает мне разницу между содержимым файла, существующим в моем рабочем дереве, и содержимым файла, содержащегося в другом коммите.
Это потому, что добавленный вами новый файл не отслежени, следовательно, Git не отслеживает это.
Попробуйте git diff HEAD
, вы не увидите, что добавили B.txt в свое рабочее дерево.
По сути, diff не учитывает неотслеживаемые файлы.Вот почему вы видите, что файл удален, потому что diff такой же, как git diff B A
Теперь, если вы добавите файл, вы увидите ожидаемый результат, потому что git отслеживает его сейчас.
Скажем, вы зафиксировали файл и затем изменили содержимое в рабочем дереве:
Теперь git diff HEAD
покажет разницу между рабочим деревом и HEAD, показываяизменение, которое вы сделали в своем рабочем дереве для отслеживаемых файлов.То же самое с git diff B