Это артефакт старых времен, когда файлы версионировались на индивидуальной основе (вспомните RCS, SCCS и CVS), тогда как современные системы управления версиями мыслят атомарными фиксациями, а не отдельными файлами. Это означает, что в прежние времена имело смысл отслеживать на уровне файлов, и лучший способ сделать это — таким образом, чтобы он мог проникнуть в двоичный код. Отсюда расширяемые ключевые слова, которые могут быть в строках, которые могут быть в объектном файле.
В наши дни у вас есть один идентификатор коммита, который нужно зарегистрировать только один раз для любого двоичного файла и который можно явно указать в сценарии, чтобы он помещался в файл вместо ключевых слов, расширяющих систему управления версиями.
Это лучше просто потому, что это означает, что источники меняются только тогда, когда ВЫ их редактируете.
Прикрепляю к посту несколько видео по теме: