Config.h is the file actually used to build the program. It is intended to be "manually" controlled by the user/developer, meaning not managed by git and not generated by a recipe in a makefile. It is for personal preferences. It is a sort of substitute for a .rc file.
As far as i understand, your expected workflow is first clone the repository, then copy config.def.h to config.h, then modify config.h to suit your preferences (or leave it alone if you like the defaults), then compile.
