Я получаю разные результаты для сравнения некоторых файлов в подпапках (давайте назовем это «subfolder / myfile.txt»), когда я делаю git diff master
против git diff master -- subfolder/myfile.txt
. Первая команда не включает все изменения, сделанные в файле, в то время как последняя делает. Я также должен отметить, что я вызываю эти команды из другой ветки, чем master. Я попытался запустить разные команды, чтобы увидеть, что работает и не работает.
Эти команды показывают все изменения в файле:
git diff master -- subfolder/myfile.txt
git diff master -- subfolder
Эти команды не показывают все изменения в файле:
git diff master
git diff master -- .
git diff master HEAD
git diff HEAD master
Я попытался внести дополнительные изменения в файл, эти изменения не обнаруживаются нерабочими командами, но они воспринимаются рабочими командами. Кроме того, я попытался удалить и перестроить индекс git или клонировать репо git, но ни одно из действий не имело значения.
Я попытался сделать минимальный рабочий пример, но не смог воспроизвести проблему в свободном sh новый репо. Я подозреваю, что здесь произошло то, что команда basi c diff имеет некоторое кеширование, которое испортилось.