I would like to automatically copy the committed files to a certain folder so they can be viewed in a browser, but I would like to do this without having to create a bare repository that mirrors the main repository (as shown here) and I would like this to happen on commit.
Is there any simple way to create a hook that reads which files have been committed and copies them/updates them on a live webserver?
For example: I have a folder named /example.com and a git repository. I want that when I commit index.html in the repository, the corresponding index.html file from /example.com to be updated with the contents of the committed file
A good way of doing this is to create a
post-committhat runsgit checkout -fwith the work tree set to the directory that is exposed by your web server and the git directory set to the.gitdirectory in your development repository. For example, you could create a.git/hooks/post-commitfile that did:Be careful with this, however – the
-fmeans that git may remove or overwrite files to make/example.com/match the tree in your most recent commit.(Remember to make the
.git/hooks/post-commitfile executable as well.)