Если вы говорите о какой-либо сборке, созданной любым разработчиком, то ответ - вы не можете, потому что даже если вы знаете базовую версию, из которой был создан бинарный файл, вы не знаете, имел ли разработчик локальные модификации ,
Если вы говорите о выпущенном программном обеспечении: ваши двоичные файлы должны иметь прикрепленный номер версии, и вы должны найти метку / тег / ветку с этим номером версии в вашем хранилище.
Конечно, есть способы автоматизировать это (всплывают ключевые слова или сценарий автоматической сборки, получающий версию от имени тега), но в итоге все сводится к этим трем:
- автоматизированные сборки на выделенном компьютере (желательно с некоторым графическим интерфейсом, в который вы просто добавляете тег / метку)
- номера версий в двоичных файлах
- теги / метки / ветки для выпущенных версий в SCM.