У меня был похожий случай один раз. Оказалось, что файл (или, в моем случае, изменение этого файла) исчез как часть коммита слияния из-за неправильного разрешения конфликта. Предположим следующее:
- В вашей "главной" ветке есть файл A.
- Ветвь "devel" на основе "master" изменяет файл A и добавляет файл B.
- На "master", A также модифицируется.
- Слияние «devel» с «master» создает конфликт в файле A.
Если вы теперь разрешите конфликт в A, но также удалите неконфликтующий B из коммита слияния, B «исчезнет» и не окажется в «master», хотя Git скажет вам, что «devel» полностью объединен с «master». ». Более того, в log / gitk нет указания, что B был удален как часть коммита слияния.