Advantages and drawbacks in committing built files in web develoment

A lot of people keep saying that it is a bad practice to commit built files in a repository, but i find that not doing it leads to a lot of troubles.

I also think that this has to be reconsidered given the strong advantages that build files provide in deploying generic web content.

  • What is a shim repository?
  • How to use Github Pages with Dependencies?
  • VS 2015 + Bower: Does not work behind firewall
  • Grunt install fails on azure web app deploy through deploy.cmd file
  • Dealing with git, generated files and bower
  • How to use Bower with private Bitbucket repository?
  • A few context notes:

    • using git
    • developing for the web
    • developing for software modularity, so no giant code monoliths involved
    • developing for reusability, and possibly sharing as free software
    • by built files i mean textual files like compiled HTML, CSS or Javascript, not binary files

    In this context, committing built files strongly simplifies the deployment process, allowing easy deploying with just a static server, and thus:

    • easy local set up of the project also for the non technical
    • deployment does not require build dependencies
    • easy deploy and demo on github gh-pages
    • making built assets reusable by who references the repository with bower
    • easier troubleshooting of build errors among members of a team

    There are several means of configuring git in order to make built file handling more convenient, and not by accident they are often using by people working with style compilers or javascript transpilers. Compiled files used to be binary in the past and i can agree in that case to not commit them, but in web development we are daily building a lot of text files and they are so conveniently moved around with their source inside the same git repo.

    At this point, if no disadvantages can be found, saying that committing built files is bad practice becomes just an unreasonable dogma.

    So what are the actual drawbacks in committing built files? What are, on the other end, the advantages?


    Related questions:

    • Dealing with git, generated files and bower
    • Why check in bower components?

  • Building/Waiting for parent job Latest version
  • Git on the server(windows server 2012)
  • Detailed explanation of 'git remote show'
  • git workflow with vendor directory
  • How to commit only modified (and not new or deleted) files?
  • Why is “MINGW64” appearing on my Git bash?
  • Git Baby is a git and github fan, let's start git clone.