Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Git hook (post-receive): update working tree on PUSH
# This hook is placed in Bare repository and it updates Working tree whenever a PUSH
# is executed
# Assuming following file structure:
# .
# |-- myproject
# |-- myproject.git
# set WORKTREE=../myproject
# Where myproject.git - current bare repo and myproject - working directory
# To enable this hook, rename this file to "post-receive" and make sure it is executable
# update the working tree
git --work-tree=./ --git-dir=$GITDIR checkout -f
git --work-tree=./ --git-dir=$GITDIR clean -fd
# return to git directory
# we have to read stdin in order to avoid
# sideband demutiplexer error
# more details here:
while read oldrev newrev refname

Djabx commented Mar 6, 2017 edited

Thank you, exactly what I needed !

One question, why do you use checkout -f followed by clean -fd and not reset --hard ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment