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 re
A good way of doing this is to create a post-commit
that runs git checkout -f
with the work tree set to the directory that is exposed by your web server and the git directory set to the .git
directory in your development repository. For example, you could create a .git/hooks/post-commit
file that did:
#!/bin/sh
unset GIT_INDEX_FILE
export GIT_WORK_TREE=/example.com/
export GIT_DIR=/home/whoever/development/web-project/.git/
git checkout -f
Be careful with this, however - the -f
means 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-commit
file executable as well.)