hi > On Sat, Jun 05 2021 > It's way too common of a pattern to e.g. have a *.o file made from a > corresponding *.[ch] file(s) in the same directory. The patterns were common for old times (before VCSes was involved). To deal with temporary files (like .o), generic OS tools like "make remove_compiled" can help to clean directory before stage. To keep derivative persistent files (like the same .o) separated directory can be used. > git already does a good job of supporting it. Sure, the light message: "There are ignored files (%u<number of files>) not placed into repo.\n\t(use git status --ignored to view)"; will improve the activity. Otherwise some files somethimes will not be placed into repo unexpectedly for user. > You'd e.g. compile all your > assets outside of the repo via your build system, and just not have > anything in .gitignore. Do you suggest to copy desired src files into separated repo directory (the repo directory placed under VCS control) by generic OS tools (i.e. by cp command) and stage the separated directory? If yes; for the first it is copies of all src files; for the second we could lost some src files due to the possible wrong copy patterns (the same reasons as by wrong .gitignore patterns). So, to explicitly create output files into separated directory and to implicitly include all files in src directory into repo is only reliable way to keep commits without data lost (the way will sometimes include extra output files into repo). to explicitly create output files into separated directory is responsibility of translators and makefiles. Best regards, Maksim.