I understand that a Git server is generally supposed to be a bare repository. According to https://stackoverflow.com/a/2538611/271577 , this may be merely a recommendation: "It is usually recommended that the remote repository be made bare as attempting to push to a branch which is checked out would cause the remote's working tree to become out of sync with its checked out branch."
I would assume though that a hook could cause the checked out branch to auto-merge changes.
One could thus have a more abbreviated pipeline whereby developers merely pushed changes to a single Git server for continuous integration and a Git hook was used to merge the changes (if passing tests) and immediately set up a web server based on the repo contents, instead of setting up a bare repository with a hook to prompt a separate repository to pull the changes and only then update the web server.
Are there any technical (or practical) reasons this approach wouldn't work out or that it would have its own limitations?